根据计算机名获取局域网内另一网段计算机的ip

lyingbo 2013-04-18 12:10:21
问题:局域网内两个网段的计算机:AA(ip:192.168.8.28),BB(ip:192.168.4.20),现在要在AA上通过计算机名BB得到它的ip:192.168.4.20,直接调用gethostbyname返回了失败,errno是11001

1:gethostbyname失败的原因
2:有没解决方法
...全文
427 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyingbo 2013-06-07
  • 打赏
  • 举报
回复
引用 10 楼 VisualEleven 的回复:
跨网段就要过网关,一过网关,以太网包的源mac地址就要变成网关mac地址。 这样应该是不行的,得不到的。ping的通吗?
ping过了,可以通
Eleven 2013-05-23
  • 打赏
  • 举报
回复
跨网段就要过网关,一过网关,以太网包的源mac地址就要变成网关mac地址。 这样应该是不行的,得不到的。ping的通吗?
lyingbo 2013-05-23
  • 打赏
  • 举报
回复
引用 8 楼 wumn29 的回复:
错误代码11001意思是找不到主机 检查一下网络是否能Ping通 否则检查一下winsock版本
版本没问题
wumn29 2013-04-26
  • 打赏
  • 举报
回复
错误代码11001意思是找不到主机 检查一下网络是否能Ping通 否则检查一下winsock版本
wumn29 2013-04-26
  • 打赏
  • 举报
回复
要使用Winsock 2.0以上的版本才行, 应该是winsock版本低了的原因
lyingbo 2013-04-26
  • 打赏
  • 举报
回复
还有谁知道么?麻烦解答下,谢谢了~~~~~
lyingbo 2013-04-24
  • 打赏
  • 举报
回复
引用 2 楼 lostying 的回复:
局域网内通过主机名获取IP地址是通过往多播地址224.0.0.252的5355端口发数据,然后接受对方回应来完成的,http://baike.baidu.com/view/3575791.htm,如果对方没有开启此项服务,那你就无法通过主机名获取对方的IP地址.
Link-local Multicast Name Resolution 链路多播名称解析, 协议允许IPv4和IPv6主机,执行在同一个本地连接的主机名称解析。 它被包含在Windows Vista Windows Server 2008和Windows 7中 。 多播地址: 224.0.0.252 端口:5355 这玩意儿貌似不支持xp啊。。。
无言猪 2013-04-18
  • 打赏
  • 举报
回复
在5355上监听的应该是mDNSResponder.exe
无言猪 2013-04-18
  • 打赏
  • 举报
回复
局域网内通过主机名获取IP地址是通过往多播地址224.0.0.252的5355端口发数据,然后接受对方回应来完成的,http://baike.baidu.com/view/3575791.htm,如果对方没有开启此项服务,那你就无法通过主机名获取对方的IP地址.
www_adintr_com 2013-04-18
  • 打赏
  • 举报
回复
在传进去的主机名字前加 \\ 试试呢. 在 c++ 里就是 "\\\\" 哈.
lyingbo 2013-04-18
  • 打赏
  • 举报
回复
引用 1 楼 adlay 的回复:
在传进去的主机名字前加 \\ 试试呢. 在 c++ 里就是 "\\\\" 哈.
不是这个原因,加不加\没什么关系的,测过了~~~

18,356

社区成员

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

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