如何通过IP地址在LAN中查找计算机名称?


54

我的网络包括运行Linux的计算机和其他运行Windows的计算机。我的机器正在运行Linux。


2
这个问题还不清楚,导致下面的答案各有不同。您是否要查找主机的DNS名称?您想找到WINS名称吗?您是否要在网络中搜索找到的所有主机?所有这些问题都得到了解答-但是所需的具体答案未知。
2014年

Answers:


35

输入终端

arp -a

无论是Linux还是Windows,它将显示LAN中的所有主机名。


14
这在拥有30台以上Linux机器的本地网络上没有显示任何内容……
Cerin

@Cerin您自己在Linux机器上吗?
Shashank Sawant 2014年

1
在Ubuntu 14.04上,它说:“?(192.168.1.2)at wlan0的00:22:6b:f2:33:b3 [ether]”,仅提供有关路由器的信息(我的笔记本电脑通过wifi连接到它,例如关于其他10个设备atm)。看着man arp,它还说“ arp-操作系统ARP缓存”。该工具应如何解决最初的问题?
gerlos 2014年

5
同样在Ubuntu 14.04上,这里只列出了一堆? (192.168.55.147) at ac:3a:7a:a4:01:d4 [ether] on eth0
Elijah Lynn '02

2
同样在这里。我只能按主机名访问localhost,似乎没有其他广告可以宣传它的主机名,即使是我自己设置的Linux机器也是如此。
unfa

19

输入终端

sudo aptitude install nmap
nmap -sP xxx.xxx.xxx.xxx

这将为您提供:

Starting Nmap 5.21 ( http://nmap.org ) at 2012-11-03 19:08 CET
Nmap scan report for HOST.DOMAIN (xxx.xxx.xxx.xxx)
Host is up (0.00052s latency).
MAC Address: YY:YY:YY:YY:YY:YY (Manufactor)
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

其中HOST.DOMAIN是计算机的DNS名称。


10
这将显示所有活动IP,但仅显示在本地绑定服务器中显式配置了自定义域的计算机的域。它没有显示任何本地主机名,我认为这是OP想要完成的工作。
Cerin 2014年

这个答案是非常快的。
activedecay

4
-sP可能已更改为-sn,具体取决于您的nmap版本。在nmap 7.12手册中:-sn(无端口扫描)在Nmap的早期版本中,-sn被称为-sP。
Lemmings'16

arp命令类似,我相信只有当您有一个本地DHCP服务器和DNS服务器/代理相互通信时,此答案才有效。这样,在DHCP租约中记录的主机名就可以解析(或反向解析) )通过DNS。
Doktor J

9

如果您尝试这样做:

您可以在Windows中运行它

nbtstat -A xxx.xxx.xxx.xxx (where x is the ip address)

在ubuntu上,您可以安装nbtscan。您可以在这里找到更多信息:http : //www.unixwiz.net/tools/nbtscan.html

希望能帮助到你


非常感谢,但是nbtscan似乎仅检测运行Windows的计算机。我有2台运行Windows的计算机,另外2台运行Linux的计算机。它仅检测两个正在运行的Windows。
Islam Hassan 2012年

2
你可以尝试nmblookup吗?它应该已经安装在Ubuntu上
Brett

抱歉,我已经阅读了本教程,但无法弄清楚如何编写解决我的问题的命令。我看不到将IP作为输入的选项。你能帮我写命令吗?
Islam Hassan

6
尝试nmblookup -A xxx.xxx.xx,其中x是计算机的IP地址。因此,我将执行nmblookup -A 192.168.1.6,它将返回我的计算机的名称。您将需要为每台计算机执行此操作。
布雷特(Brett)2012年

1
@Brett:(+1)您应该将注释转换为答案,因为它是唯一对我有用的方法(包括Windows和Linux盒)。谢谢
lepe

7

Netbios名称反向查找可能比DNS和tcp / ip的“主机名”更能满足您的需求。带有-A参数的nmblookup返回设备名称以及mac地址。尝试这样的事情:

nmblookup -A 192.168.1.2

这是对我
有用

那就是答案。
坎帕

3

如果您的网络运行的是DHCP服务器,通常是在调制解调器/路由器上,则它有可能让您查看DHCP分配的地址-通常通过网页查看,并且经常在分配的IP地址旁边列出计算机名称。 。


2

我只是用

nslookup xxx.xxx.xxx.xxx

它将显示主机名(通常是计算机名)


4
这让我** server can't find xxx.xxx.xxx.xxx.in-addr.arpa.: NXDOMAIN
Cerin 2014年

为我工作:)
vk.edward.li 2015年

2
nslookup会进行DNS搜索,因此要使其正常工作,您需要在DNS中注册主机。如果您有一个常规Windows网络,且在私有IP范围内,但未配置ActiveDirectory,则它将无法正常工作。NetBios名称和DNS名称是不同的野兽。
bogdan.mustiata

1

据我所知,没有实用程序可将IP地址解析为NetBIOS名称。我以为,某种网络范围界定程序或渗透测试程序可能会为您提供大量信息。但是,所有计算机都必须位于相同的域和子网中。


您能给一个程序命名吗?
Islam Hassan

1
OP希望相反。例如IP->主机名
Cerin

我知道这很旧了... OP正在使用Linux,而不是Windows ...但是在Windows上,您可以运行nbtstat -A <IP Address>以仅通过IP来获取NetBIOS名称。这可以跨子网工作,并且无需位于同一域中。同样,运行nbtstat -a <NetBIOS Name>会相反。希望这对您有帮助...
John Homer 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.