基于IP地址远程获取计算机名称的最佳方法是什么?

8

我有几台以IP地址标识的Windows机器。我想编写一个应用程序,远程查询这些计算机并获取它们的名称。我不能依赖DNS,因为它不能提供精确的结果。

我听说有一个可以使用的NetBIOS API,但我不熟悉这个API。

4个回答

8
PING -A xxx.xxx.xxx.xxx

这将首先尝试使用WINS,然后再使用DNS。

NSLOOKUP命令执行类似的操作,但仅通过DNS。


@Jay,WINS比DNS查找更可靠吗?我对DNS有不好的经历。 - gyurisc
1
如果我使用小写的 ping -a x.x.x.x 语法,这个方法在 Windows 10 上对我起作用。在我的机器上无法识别 -A - Phlucious

5

查看getnameinfo

getnameinfo函数提供了从地址到ANSI主机名的协议无关名称解析,以及从端口号到ANSI服务名的解析。


我会尝试这个建议。谢谢。 - gyurisc

2
这是RARP或DHCP的确切目的。
在Windows上,有一个dll(DHCPobj.dll)可用于Microsoft资源工具包中,据说可以让您向本地DHCP服务器进行此类查询。我从未使用过它,所以无法确定其运行效果如何。

1

你可以使用以下命令通过IP地址获取远程主机名

nslookup [ip address]

或者您可以使用

tracert [ip address]

追踪特定IP地址的路由


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接