在局域网上,我想使用跨平台程序找出所有连接计算机的名称,最好是nmap。我知道我能做到
nmap -sn xxx.xxx.xxx.xxx/24
(其中xxx.xxx.xxx.xxx是本地IP地址)查找已启动的主机,但如何找到计算机的主机名?他们用我能用nmap找到的方式广播这个吗?
更新: 看起来像愤怒的IP扫描仪可以做到这一点。它是如何做到的?我可以用nmap复制它吗?
在局域网上,我想使用跨平台程序找出所有连接计算机的名称,最好是nmap。我知道我能做到
nmap -sn xxx.xxx.xxx.xxx/24
(其中xxx.xxx.xxx.xxx是本地IP地址)查找已启动的主机,但如何找到计算机的主机名?他们用我能用nmap找到的方式广播这个吗?
更新: 看起来像愤怒的IP扫描仪可以做到这一点。它是如何做到的?我可以用nmap复制它吗?
Answers:
来自Angry IP Scanner FAQ(“ 主机名未显示 “):
Angry IP Scanners显示DNS返回的主机名(名称) 服务器,做一个 反向查找 。服务器提供IP 如果知道,则发送并返回主机名。
如果有些电脑 知道它自己的名字,但这并不意味着它已经提供了它 网络的DNS服务器。换句话说,它知道的主机名称 它本身(本地名称)和附加到IP地址的名称 DNS服务器已知的(全局名称)可能并不总是匹配。
通常,DNS查询将返回一些通用名称,例如 dhcp-12-13.superisp.com,特别是在ISP网络中。
名字匹配 在以下任何一种情况下:
- 您的计算机已将该名称发送到DHCP服务器,从该服务器获取IP地址,DHCP服务器已将其提供给本地 DNS服务器
- 您有一个静态IP地址,并且您的本地主机名是根据符合您的全局命名约定的规则配置的 网络
- 如果查询本地IP地址,主机的TCP堆栈将返回本地名称,而不是询问全局名称
来自Nmap的文档(“ 主机发现 “):
默认情况下,Nmap仍然可以 反向DNS解析 在主机上 学习他们的名字。
你也可以使用 nmap -A xxx.xxx.xxx.xxx
它应该在输出中显示主机名。在我的网络上,我通过grep管道,以获得我想要的信息。 〜 grep -e 'scan report' -e 'Computer name'