ipv4とipv6をサポートするドメインからリストIPアドレスを取得するために使用していますが、getaddrinfo(3)
ローカルシステムはipv4のみをサポートするか、ipv4とipv6の両方をサポートします。システムが ipv4 と ipv6 の両方をサポートする場合、ipv4 と ipv6 の両方をgetaddrinfo(3)
照会します。システムはipv4とipv6のみをサポートします。 ipv4をサポートし、getaddrinfo(3)
ipv4のみを照会します。設定ai_flags
しようとしましたが、AI_ADDRCONFIG
まだipv4とipv6を照会し、システムはipv4のみをサポートします。私は何をすべきですか?
これは私のコードです。
struct addrinfo hint, *res = NULL, *p = NULL;
int err;
ACE_OS::memset(&hint, 0, sizeof hint);
hint.ai_family = AF_UNSPEC;
hint.ai_socktype = SOCK_STREAM;
hint.ai_flags = AI_ADDRCONFIG;
err = ACE_OS::getaddrinfo(hostname.c_str() ,"http", &hint, &res);
ベストアンサー1
IPv4だけが必要であることがわかっている場合はこれai_family
をに設定してくださいAF_INET
。
AF_INET
IPv4の場合、AF_INET6
IPv6の場合。