如何查找局域网内所有的主机名、MAC 地址及 IP

2024年5月31日服务器运维评论9,303字数 966阅读3分13秒阅读模式

Ethan_2024-05-31_19-15-22

为了测试,我一直通过远程桌面连接,来使用一台 Windows 电脑,不过今天突然无法连接了。

我以为是这台 Windows 电脑出问题了,给它连上屏幕,看了下,一点问题没有。

那么猜测就是网络的问题了,首先想到的就是 IP 地址变了,在 Windows 上通过ipconfig查看了下IP,果然和我连接的已经不一样了,猜测最近应该是有人重启了路由器。

于是我就在想能否直接找到这台 Windows 电脑最新的 IP 呢?因为在一个局域网内,主机名字都是知道的,应该很好找的才对。

谷歌一下,答案就有了,在知道 Windows 主机名字的情况下,只需要在 macOS 上使用以下命令就可以快速找到主机的 IP:

(HostName 换成主机名称)

smbutil lookup HostName

在 WIndows 下也有类似的命令:

nbtstat -a HostName

那么如果不知道主机名称呢?

1.

使用ping命令

使用以下命令遍历ping路由中所有可能的IP地址:

for i in {1..255}; do ping -c 1 192.168.1.$i; done
  • 如果知道大概的 ip 位置可以不要从1循环到255。
  • 192.168.1 为局域网头,你需要根据自己的本地网络进行修改
  • -c 1表示发送一次ping请求,如果没有指定次数,ping命令会一直发送请求直到手动停止。-c是ping命令的一个选项,用来指定ping请求的次数

2.

利用ARP缓存表

来获取获取局域网设备IP和MAC地址。

$ arp -a
? (10.125.49.187) at 18:81:e:eb:ef:c0 on en0 ifscope [ethernet]
? (10.125.50.149) at 4:cf:8c:26:f3:8e on en0 ifscope [ethernet]
? (10.125.51.44) at 10:77:17:57:b2:c3 on en0 ifscope [ethernet]

这一步需要时间可能较长,而且会包括一些无效的MAC记录,因此可以筛选出有MAC地址的记录。

可以使用以下命令:

arp -a | grep -v "incomplete"
  • -v表示反选。

找到 IP 后还可以继续获取更多主机信息:

macOS 下用 smbutil status 10.125.49.187(IP 换成上一步获取的)

Windows 下用 nbtstat -A 10.125.49.187(IP 换成上一步获取的)

匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定