我正在寻找一种方法来查找与网络连接的计算机的IP地址。
设想如下:
我读过,你可以使用ping和nslookup来实现这一点。首先,作为测试,我尝试使用随机主机名进行ping和nslookup,并获得了它们的IP地址(如声明的这里 )。
然后,我尝试,(只是为了测试)这与一台带有静态IP的PC机。当我做的时候
ping CompName我有IP地址
然而,当我试着
nslookup CompName我找不到文件:服务器故障
即使我可以用ping来完成这个任务,当目标计算机在防火墙后面时会发生什么呢?
发布于 2019-08-01 10:43:29
执行ping时,首先要为计算机名称发起名称解析。在现代Windows机器中,这通常会使用“主机名解析”,尽管在某些情况下它会使用“NetBIOS解析”。
主机名解析通常使用以下顺序:
因此,在您提出的方案中,目标计算机肯定不是您的计算机(不是“locahost”)。它不可能在您的本地主机文件,除非您把它放在那里,所以我们是依靠DNS或说服计算机告诉你它的IP地址。
NSLOOKUP是一个明确查询所选DNS服务器的DNS数据库的工具。@Mikael-H的答案解释了为什么动态IP地址可能在DNS数据库中找到,也可能找不到。如果答案在DNS中,您将在NSLOOKUP中找到它,如果发现动态IP的条件不合适,那么如果您控制了网络,就应该能够修复这个问题。
当然,值得一提的是,如果您可以访问DHCP服务器,那么您可以在DHCP数据库中查找计算机的名称和IP。它将有助于了解计算机的MAC地址,或当它第一次请求一个IP。
如果您知道目标计算机的MAC地址,那么您可以很容易地找到IP,即使在相当严格的防火墙到位。向broadcast address发送ping (类似于/24网络上的192.168.2.255 )。这将不会解决,但后续使用arp -a命令,子网上的所有ARP条目都将显示出来。你应该看看你的目标电脑。
https://serverfault.com/questions/977525
复制相似问题