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의 경우.