为了测试,我一直通过远程桌面连接,来使用一台 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 换成上一步获取的)