局域网中透过IP获取主机名
局域网中通过IP获取主机名
今天老大给了个任务,一直没搞定,
在Cocoa程序中已经知道在线机器的IP,现在是我需要通过这个IP获取到该主机的计算机名。由于我用的是macos,所以macos的机器可以通过苹果的相关服务可以获取到,但是我不知到怎么获取当前局域网中windows 的hostname信息,请各位大侠帮帮忙,谢谢,着急,立等!
------解决方案--------------------
gethostbyaddr
------解决方案--------------------
nbtstat -a 192.168.0.5
------解决方案--------------------
system("nbtstat -A 192.168.60.40 >nbtstat.txt");
//然后读文件nbtstat.txt的内容。
参考下面:
C:\>nbtstat -A 192.168.60.40
------解决方案--------------------
这个需要网络中有WINS服务器的支持。
------解决方案--------------------
这样说吧,gethostbyaddr能够查询public IP对应的hostname,那也是因为你的主机能连Internet,且Internet上有DNS能够查询,你把Internet连接断开,或者不指明DNS服务器的地址,那么查询就会失败。
同理,Windows的主机名反查,也是由于WINS的支持,所以建议先看看Windows网络的相关知识,再看看Mac有无相应的API可以操作Windows网络。
今天老大给了个任务,一直没搞定,
在Cocoa程序中已经知道在线机器的IP,现在是我需要通过这个IP获取到该主机的计算机名。由于我用的是macos,所以macos的机器可以通过苹果的相关服务可以获取到,但是我不知到怎么获取当前局域网中windows 的hostname信息,请各位大侠帮帮忙,谢谢,着急,立等!
------解决方案--------------------
gethostbyaddr
------解决方案--------------------
nbtstat -a 192.168.0.5
------解决方案--------------------
system("nbtstat -A 192.168.60.40 >nbtstat.txt");
//然后读文件nbtstat.txt的内容。
参考下面:
C:\>nbtstat -A 192.168.60.40
C:\>
本地连接:
Node IpAddress: [192.168.60.40] Scope Id: []
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
HXZZY-ZHAOZHONG<00> UNIQUE Registered
WORKGROUP <00> GROUP Registered
HXZZY-ZHAOZHONG<20> UNIQUE Registered
WORKGROUP <1E> GROUP Registered
MAC Address = 48-5B-39-CC-38-E5
------解决方案--------------------
这个需要网络中有WINS服务器的支持。
------解决方案--------------------
这样说吧,gethostbyaddr能够查询public IP对应的hostname,那也是因为你的主机能连Internet,且Internet上有DNS能够查询,你把Internet连接断开,或者不指明DNS服务器的地址,那么查询就会失败。
同理,Windows的主机名反查,也是由于WINS的支持,所以建议先看看Windows网络的相关知识,再看看Mac有无相应的API可以操作Windows网络。