2013-10-12 65 views
1

我想使用getaddrinfo解析主机名并获取IPv4和IPv6地址。该文件说,要做到这一点'提示'参数可以是NULL。但是,我应该如何处理'servicename'参数?我只想要这些地址,而不是将它与任何服务/端口相关联。我可以将该参数保留为NULL还是空字符串?它有效,但是这样做是对的吗?WinSock2 getaddrinfo解析主机名

gethostbyname函数似乎只适用于该任务,但根据文档已过时,应该使用getaddrinfo。

回答

0

documentation也说:

的一个或两个或pNodeName参数pServiceName的必须指向一个NULL结尾的ANSI字符串;一般都提供。

这有点模糊,但似乎可以为pServiceName(适用于我)指定NULL。

documentation也有一个很好的示例程序,向您展示如何在IPv4和IPv6上使用getaddrinfo。

+0

奇怪的是,指定AF_UNSPEC只返回IPv4地址。要获得IPv6地址,我必须明确指定AF_INET6。 – NFRCR

+0

这可能与您的网络配置有关。明确胜于暗示我总是说;-) – helb