我怎么能够根据 IP 地址/MAC 地址获取主机名在 Windows 上?(如果与版本相关,则使用 Win7)
我知道这arp -a
会给我一个 IP 和 MAC 表。主机名和 MAC/IP 有类似的吗?
答案1
如果您从 MAC 地址开始,则首先需要获取 IP 地址。这意味着您需要访问具有与 MAC 关联的 IP 地址的设备。根据问题,arp -a
将列出 MAC 地址和相应的 IP 地址。为了填充该列表,机器必须在某个时候发出请求arp
,说“谁有 IP xxxx” - 所有者将回复,收到后,arp 表将被填充。
为了实现此功能,两个设备必须位于同一第 2 层网络(即同一交换机/vlan)上。您可以通过 ping 网络上的每个 IP 来手动触发 arp 请求,或者使用类似实用程序nmap
一次性完成所有操作。
一旦获得了 IP 地址,您就可以依靠名称解析服务进行反向查找并返回与 IP 关联的主机名。
在 DNS 中,这是通过 PTR 记录实现的。对于每个 IP 地址,都有一个 PTR 记录,其中存储了关联的主机名。 但是,没有义务存储 PTR 记录,因此它们可能不存在,在这种情况下查找将失败。
它们看起来像这样:
13.12.11.10.in-addr.arpa. 900 IN PTR hostname.domain.com.
PTR 记录中的 IP 地址是反向的。因此,为了获取主机名 10.11.12.13,我们对 DNS 说“给我 13.12.11.10.in-addr.arpa 的 PTR 记录。”
它返回上述记录。您可以通过以下方式实现此目的:
nslookup 10.11.12.13
当nslookup
给定一个 IP 地址时,它将尝试进行 PTR 查找。
根据其他回复,如果 IP 属于 Windows 机器,您也可以这样做nbtstat -A 10.31.46.59
(注意大写 -A)
答案2
Ping -a <ip address>
这将解析 DNS 中的反向查找区域。
如果您没有反向查找区域,它将在您的本地名称缓存中查找。
如果您没有条目,它将在您的 LAN 上(您所在的子网内)进行广播以查询它。
这仅适用于 IP > 主机名解析。无 MAC。
答案3
nbtstat -A 192.168.1.100
192.168.1.100 是目标地址