如何在局域网中查找“唯一”IP 地址

gow*_*nda 2 sharing networking lan smb

sudo arp-scan --interface=eth0 --localnet
Run Code Online (Sandbox Code Playgroud)

我知道上面的命令工作正常,但它输出所有内容,如 MAC 地址等。但我只需要找到 IP 地址。是否可以 ?

ter*_*don 9

我会只使用grep

$ sudo arp-scan --interface=eth0 --localnet | grep -oP '^[\d.]+'
192.168.0.1 
192.168.0.2 
192.168.0.3 
192.168.0.10    
192.168.0.23    
192.168.0.72    
192.168.27.1    
192.168.27.14
192.168.27.30
Run Code Online (Sandbox Code Playgroud)

解释:

-P讲述grep使用Perl兼容正则表达式,其中\d任意数量的匹配。的-o意思是“仅打印该行的匹配的部分”。我使用的正则表达式表示匹配位于行首 ( +) 的连续数字 ( \d) 或点 ( .)的最长字符串(这就是其含义^)。


Sto*_*rux 5

我只是用awktailhead达到你想要的东西:

sudo arp-scan --interface=eth0 --localnet| awk '{print $1}'|tail -n +3|head -n -2
Run Code Online (Sandbox Code Playgroud)

这给出了输出

192.168.1.1
192.168.1.3
Run Code Online (Sandbox Code Playgroud)

因为我的局域网里只有这两个。

此处awk '{print $1}'打印位于第一列中的 IP 地址。 tailhead删除不必要的东西,如标题,只显示 IP 地址。