다음 코드는 항상 IPv4를 초래할 것이다 그래야, 성공 IPv4 만 (AF_INET) 주소를 포함하는 hostent 구조를 반환하는 gethostbyname(...)
gethostbyname은 IPv4 주소가있는 hostent 구조체를 반환하도록 보장됩니까?
에 충실해야한다, 따라서 보장 gethostbyname(...)
기능을인가 호스트 이름을 해결하기위한 getaddrinfo(...)
을 사용할 수 없습니다 주소 :
int resolve(const char *name, struct in_addr *addr) {
struct hostent *he = gethostbyname(name);
if (!he)
return 1;
memcpy(addr,he->h_addr_list[0],4);
return 0;
}
그래서 gethostbyname 뒤의 DNS 확인자가 IPv6 주소를 반환하면 내 응용 프로그램이 실패합니까? – Robert
@ 로버트 - 주관적입니다. 응용 프로그램의 _user_가 IPV6 주소에 연결할 수 있습니까? –
@Tim : 사이트에서 업데이트를 확인하는 프로그램이기 때문에 성공할 수도 있습니다. 하지만 AF_INET6도 받아 들일 수 있다면 얼마나 큰 구조가되어야할까요? – Robert