2010-04-08 77 views
4

我有一个程序使用gethostbyname(在Windows中)为了将IP地址转换为主机名。gethostbyname替换为IPv6地址

但是,它只适用于IPv4 ...

什么是IPv6的正确替代?

谢谢。

回答

6

查找gethostbyname in MSDN告诉我们,它已被弃用,我们应该看看getaddrinfo,它有处理其他寻址系列的各种选项。

或者,如果你正在做地址转换为名称,你会在getnameinfo

+0

谢谢。有用。 – rkellerm 2010-04-08 12:18:26

+2

鼓励开发人员使用'GetAddrInfoW' Unicode函数(http://msdn.microsoft.com/en-us/library/ms738519(v=vs.85).aspx),而不是'getaddrinfo' ANSI函数。 – 2011-07-24 15:48:00

6

使用getaddrinfo,其弃用老gethostbyname功能告终。

+4

你**应该**甚至将其用于IPv4地址。您可以非常轻松地生成独立于协议的代码(适用于IPv4和IPv6的相同代码)。 – ereOn 2010-04-08 11:06:44

+0

+1好点,@ereOn。 – 2010-04-08 11:47:11

+0

谢谢。有用。 – rkellerm 2010-04-08 12:17:45