用gethostbyaddr在局域网中求IP对应主机名,总是返回localhost

痴心笨笨 2013-03-14 04:37:00
代码如下:
	WSADATA wd;
WSAStartup(0x202,&wd);
DWORD addr = inet_addr("192.168.0.107");
HOSTENT* host = gethostbyaddr((char*)&addr, sizeof(addr), AF_INET);
::MessageBoxA(NULL, host->h_name, "Name", MB_OK);


在192.168.0.0的局域网中测试,
现在现象是如果获取本机ip地址,能够得到主机名;其他的ip地址,不管存在与否都会得到主机名“localhost”,这到底是是为什么呢?
gethostbyaddr真正的工作原理是什么呢?
...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
读取对方系统的 hosts文件。
  • 打赏
  • 举报
回复
gethostbyaddr并非万能、
  • 打赏
  • 举报
回复
原理:DNS 查询
deep_silence 2014-08-04
  • 打赏
  • 举报
回复
我也遇到同样问题,请问仁兄,问题解决了没,可否分享一下经验
痴心笨笨 2013-03-15
  • 打赏
  • 举报
回复
大侠来帮忙啊

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧