我想将主机名(计算机名“我的电脑”->“属性”->“高级系统设置”->“计算机名”)转换为IP地址。
有什么办法可以将主机名转换为IP地址?
我尝试了以下操作,但pHostInfo作为NULL传入。
主机名是我的计算机名。
struct hostent* pHostInfo;
pHostInfo = gethostbyname(hostname);
在上面的代码中,它为NULL。您能给我我将主机名转换为IP地址的代码吗?
最佳答案
使用gethostname()
获取本地主机名。然后,您可以将其传递给gethostbyname()
。
但是请注意,gethostbyname()
甚至对本地主机名也执行DNS查找,因此可以获取实际上不属于本地计算机的IP地址,或者如果DNS配置错误,则可以获得无效的IP。
如果您真正想要做的就是获取本地计算机的IP地址,请改用 GetAdaptersInfo()
或 GetAdaptersAddresses()
。
关于c++ - Windows套接字编程中主机名的IP地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9400756/