如何在C++中确定IP版本?

unr*_*nal 2 c++ sockets ipv6

我想支持IPv4和IPv6两个版本.目前.我只支持IPv4,但是为了为每个我需要知道的IP版本设置不同的行为,我正在使用什么版本的IP.

Currenly我正在使用gethostbyname功能,并根据我设置的h_addrtype字段hostent struct是IPv4还是IPv6,但我想知道这是真的正确吗?如果不是,有什么方法可以获得IP版本?如果它是正确的,如果此功能失败,我该怎么办?

谢谢你提前.

Kil*_*nDS 6

gethostbyname不推荐使用,您应该实际使用getaddrinfo,其中一个原因是它被弃用是IPv4/IPv6问题.

话虽如此,是的,检查h_addrtype是正确的.