ホスト名の解決には使用できないためgetaddrinfo(...)
、固執する必要がありますgethostbyname(...)
関数は、gethostbyname(...)
成功時に IPv4 (AF_INET) アドレスのみを含む hostent 構造体を返すことが保証されているため、次のコードは常に IPv4 アドレスにつながります:
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;
}