如何找到同一本地网络中其他计算机的主机名?

如何找到同一本地网络中其他计算机的主机名?

在我的本地 wifi 中,我可以找到另一台也运行 Lubuntu 的计算机的 IP 和 MAC,并且我知道其主机名。

$ sudo arp-scan olive
[sudo] password for t: 
Interface: wlx801f02b5c389, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.198   aa:bb:cc:dd:ee:ff   Liteon Technology Corporation

1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 1 hosts scanned in 1.449 seconds (0.69 hosts/sec). 1 responded

同一本地 wifi 网络中还有其他计算机,它们很可能运行 Windows,但我不知道其主机名。

我可以从我的计算机上找到它们的主机名吗?arp-scan -l不显示该信息。

谢谢。

答案1

为您使用的任何版本的 Linux 安装 nmap。

然后执行:

nmap -sP xxx.xxx.xxx.xxx/nn

其中 xxx.xxx.xxx.xxx/nn 是您的 IP 和子网掩码位。例如,如果您位于 192.168.1.0 网络,子网掩码为 255.255.255.0,您将执行以下操作:

nmap -sP 192.168.1.0/24

Nmap 将 ping 扫描所有 IP 并尝试为您解析它们的主机名。

例如,在我的本地 LAN 上我看到:

nmap -sP 192.168.169.0/24

Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-23 20:23 CST
Nmap scan report for _gateway (192.168.169.1)
Host is up (0.00026s latency).
Nmap scan report for grid (192.168.169.6)
Host is up (0.00026s latency).
Nmap scan report for anode (192.168.169.8)
Host is up (0.000048s latency).
Nmap scan report for 192.168.169.100
Host is up (0.0027s latency).
Nmap scan report for 192.168.169.101
Host is up (0.049s latency).
Nmap scan report for 192.168.169.102
Host is up (0.092s latency).
Nmap scan report for 192.168.169.104
Host is up (0.012s latency).
Nmap scan report for 192.168.169.106
Host is up (0.055s latency).
Nmap scan report for 192.168.169.107
Host is up (0.12s latency).
Nmap scan report for 192.168.169.109
Host is up (0.00095s latency).
Nmap scan report for 192.168.169.250
Host is up (0.0024s latency).
Nmap done: 256 IP addresses (11 hosts up) scanned in 3.79 seconds

没有名称的主机是 dhcp,不会获取主机名。其他的都在 DNS 中,因此它们都有主机名。

同样,arp-scan 应该为您提供 MAC 地址。再次为您的发行版安装 arp-scan,然后执行以下操作:

arp-scan 192.168.1.0/24

再次假设您与上例位于同一 LAN 上。如果您有非标准接口,您可以使用 -I 开关指定它:

arp-scan -I enp4s2 192.168.1.0/24

请注意,在大多数发行版上,您需要成为 root 用户才能执行此操作,因此(再次以我的本地 LAN 为例):

sudo arp-scan 192.168.169.0/24

这发现了我的所有节点:

Interface: enp5s0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.169.6   74:d4:35:85:e0:44   GIGA-BYTE TECHNOLOGY CO.,LTD.
192.168.169.1   f4:f2:6d:70:16:c2   (Unknown)
192.168.169.100 6c:70:9f:d0:ff:1a   (Unknown)
192.168.169.101 10:9a:dd:80:f4:93   Apple, Inc.
192.168.169.104 08:02:8e:8e:a0:f6   (Unknown)
192.168.169.111 00:1c:c0:6e:f4:ec   Intel Corporate
192.168.169.106 fc:c2:de:4c:58:48   (Unknown)
192.168.169.102 b4:f6:1c:f2:f9:52   (Unknown)
192.168.169.103 dc:68:eb:5b:aa:c8   (Unknown)
192.168.169.250 00:01:e6:a2:3f:17   Hewlett-Packard Company
192.168.169.107 68:37:e9:d7:39:0b   (Unknown)
192.168.169.105 08:d4:6a:d1:df:5e   (Unknown)

13 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 2.438 seconds (105.00 hosts/sec). 13 responded

答案2

反向查找路由器上的每个活动主机;你会发现他们的 dhcp 主机名(通常这些被设置为他们的主机名) - 首先创建 live_hosts.txt:

sudo arp-scan 192.168.169.0/24 |
    grep '^192' |
    awk '{print $1}' >live_hosts.txt

然后:

for host in $(cat live_hosts.txt)
do
  echo "$host"
  host "$host" "$router_ip"
  sleep 0.1
done

请注意,您的路由器将查询其 dhcp-leases 文件,甚至已断开连接的节点也会解析,直到其租约被清除。但是,除非您的路由器的名称服务(通常是一些微小的 dnsmasq)被破坏,否则所有当前在线的节点都会被列出。

您可能需要为后代提供所有信息,例如硬件地址和连接持续时间;您可以通过定期扫描网络并将输出附加到文件来轻松编写此脚本。

如果 Linux 机器有正在运行的服务(sshd 现在似乎很流行),您可以发现有关 Linux 机器的更多信息,并且所有变体通常都会有一些 bonjour/zeroconf hooey 活动(google mDNS),通常类似于 avahi-daemon 之类的东西。 (称之为 bugaboo、jimjonesdiary、maga、puss-socket,这只是 mDNS。决定集合点、bonjour、avahi 的这些人是谁。至少让它变得有趣,拜托……rghh。)

虽然使用 scapy 等简单的 arp MITM 可能会造成破坏且粗鲁,但您可以在自己的网络上做您喜欢做的事情。使用 tcpdump 查看 DNS 查找将告诉您两个操作系统,并使您能够猜测谁在使用该机器。

相关内容