如何从 ip 地址或 sockaddr_in 结构 (C++/WinAPI) 中获取主机名?

Posted

技术标签:

【中文标题】如何从 ip 地址或 sockaddr_in 结构 (C++/WinAPI) 中获取主机名?【英文标题】:How to get host name from ip address or sockaddr_in structure (C++/WinAPI)? 【发布时间】:2012-09-05 12:09:31 【问题描述】:

如何在 C++ (WinAPI) 中从 IP 地址或 sockaddr_in/sockaddr_in6/sockaddr 结构(或其他)获取主机名(如“www.google.com”)?

【问题讨论】:

gethostbyaddr How to get domain name from Given IP in MFC (VC++)?的可能重复 @JoachimPileborg 已弃用,取而代之的是 getnameinfo 好的,然后见getnameinfo。 :) 感谢您的快速回答)我将 msdn 的示例用于 getnameinfo 函数 (msdn.microsoft.com/en-us/library/windows/desktop/…)。它有效,但不正确。示例 - 对于 ip "173.194.35.183" (google.com.ua) 它返回我 "muc03s02-in-f23.1e100.net" 【参考方案1】:

您正在寻找getnameinfo 函数。 MSDN 页面上包含的示例。

【讨论】:

以上是关于如何从 ip 地址或 sockaddr_in 结构 (C++/WinAPI) 中获取主机名?的主要内容,如果未能解决你的问题,请参考以下文章

从 sockaddr 结构中获取 IPV4 地址

sockaddr和sockaddr_in的区别

ip6编程

VC 为啥我获取客户端ip地址总是:204.204.204.204

sockaddr和sockaddr_in详解

字符串中的 IP 地址检测 (C++)