题 从IP地址解析主机名


我正在寻找一个命令行工具,它获取一个IP地址并返回主机名,用于Windows。


115
2017-10-13 14:27




有关: serverfault.com/q/366613/2321 - warren


答案:


您正在寻找的命令被调用 nslookup,适用于反向查找 IFF 有人配置了反向区域文件,但他们并不总是这样做。


98
2017-10-13 14:29





如果上述所有操作都失败了,并且您专门寻找Windows机器,则可以使用

nbtstat -a 192.168.1.50

返回的数据将是机器具有的所有NetBIOS记录。记录类型<20h>的那个通常是机器的名称。


75
2017-10-13 16:32



通过open vpn连接时不工作 - Alexander.Iljushkin
@Flextra - 您将需要SMB访问该计算机。您的VPN可能会阻止它。 - Moose
有趣的是,它看起来像格式化中的完全限定域名: Pinging NETBIOSNAME.DOMAINNAME.com [xxx.xxx.xxx.xxx]。如果它在网络上而不在域上(对我来说是一个感兴趣的unix系统)那么 ping -a 只是单独使用ipaddress的格式。 - jxramos
适合我。正是我需要的! - FearlessFuture


例如,对于许多IP地址,您可以使用ping -a

ping -a 209.85.229.106

将返回

Pinging ww-in-f106.google.com [209.85.229.106] with 32 bytes of data:

Reply from 209.85.229.106...........

46
2017-10-13 14:44



这是我经常使用的,因为它几乎在每台机器上都是普遍可用的。 - Goyuix
ping通常用于进行简单的DNS查找... 叹 不要那样做。 - PEra


如果使用带有IP地址的nslookup命令作为其第一个参数,则返回PTR记录(反向条目)(如果存在)。例如:

nslookup 192.168.1.50

28
2017-10-13 14:36





用挖掘。 ISC提供Windows端口 这里 (在即时下载框中查找zip文件的链接)。这是他们的 挖掘的手册页参考

沃德关于反向查找记录的观点通常不会被创建,这是非常正确的。反向查找通常会失败,因为许多管理员不打扰创建ptr记录。


1
2017-10-13 14:35





(在Windows 10 x64下测试)

从命令行:

FOR /F "tokens=2 delims= " %A in ('2^>NUL NSLOOKUP "%IP_ADDRESS%" ^| FINDSTR /C:": "') do ECHO %A

在脚本中:

FOR /F "tokens=2 delims= " %%A in ('2^>NUL NSLOOKUP "%IP_ADDRESS%" ^| FINDSTR /C:": "') do ECHO %%A

两个(侧面)笔记:

  • 压抑 NSLOOKUP 你必须使用的错误 2^>NUL 代替 1^>NUL
  • 我用过 FINDSTR /C 在四个空白字符后提取值。由于四个空间似乎只存在 Name: 输入,这似乎是使其在其他本地化系统上工作的唯一方法。

1
2017-07-17 14:22





如果你想知道同一网络中的主机名,那么请使用另一台具有相同网络的机器并使用下面的命令
平安ip地址


-1
2018-06-27 23:34



你没有注意到这个答案已经在这里吗? - 它不是为此而设计的。 - Esa Jokinen