使用 arp-scan 获取返回的重复 IP 地址列表。但是,arp-scan 将列出具有相同 MAC 地址的重复 IP。我得到 asx.txt 的排序输出(为简洁起见缩短)
arp-scan 172.16.0.0/16 > as.txt
sort as.txt > as2.txt
cat as2.txt | uniq -D -w 36 > asx.txt
kye-mgmt02:/data # cat asx.txt
172.16.150.68 d8:cb:8a:b0:6a:12 Micro-Star INTL CO., LTD.
172.16.150.68 d8:cb:8a:b0:6a:12 Micro-Star INTL CO., LTD. (DUP: 2)
172.16.150.69 00:23:24:9e:3d:32 G-PRO COMPUTER
172.16.150.69 00:23:24:9e:3d:32 G-PRO COMPUTER (DUP: 2)
172.16.150.70 00:23:24:9e:3d:82 G-PRO COMPUTER
172.16.150.70 00:23:24:9e:3d:82 G-PRO COMPUTER (DUP: 2)
172.16.150.71 d8:cb:8a:86:2f:56 Micro-Star INTL CO., LTD.
172.16.150.71 d8:cb:8a:86:2f:56 Micro-Star INTL CO., LTD. (DUP: 2)
172.16.150.72 d8:cb:8a:cf:f1:e8 Micro-Star INTL CO., LTD.
172.16.150.72 d8:cb:8a:cf:f1:e8 Micro-Star INTL CO., LTD. (DUP: 2)
172.16.150.73 d8:cb:8a:cf:f1:5d Micro-Star INTL CO., LTD.
172.16.150.73 d8:cb:8a:cf:f1:5d Micro-Star INTL CO., LTD. (DUP: 2)
正如您所看到的,所有 IP 地址实际上都没有重复,因为这些 IP 地址具有相同的 MAC 地址
为了真正找到具有不同 MAC 的重复 IP,我编辑了该文件并更改了最后一个 IP 的 MAC。
kye-mgmt02:/data # cat asx.txt
172.16.150.68 d8:cb:8a:b0:6a:12 Micro-Star INTL CO., LTD.
172.16.150.68 d8:cb:8a:b0:6a:12 Micro-Star INTL CO., LTD. (DUP: 2)
172.16.150.69 00:23:24:9e:3d:32 G-PRO COMPUTER
172.16.150.69 00:23:24:9e:3d:32 G-PRO COMPUTER (DUP: 2)
172.16.150.70 00:23:24:9e:3d:82 G-PRO COMPUTER
172.16.150.70 00:23:24:9e:3d:82 G-PRO COMPUTER (DUP: 2)
172.16.150.71 d8:cb:8a:86:2f:56 Micro-Star INTL CO., LTD.
172.16.150.71 d8:cb:8a:86:2f:56 Micro-Star INTL CO., LTD. (DUP: 2)
172.16.150.72 d8:cb:8a:cf:f1:e8 Micro-Star INTL CO., LTD.
172.16.150.72 d8:cb:8a:cf:f1:e8 Micro-Star INTL CO., LTD. (DUP: 2)
172.16.150.73 d8:cb:8a:cf:f1:5d Micro-Star INTL CO., LTD.
172.16.150.73 d8:cb:8a:cf:f1:55 Micro-Star INTL CO., LTD. (DUP: 2)
研究如何输出具有不同 MAC 的重复 IP
预期产出
172.16.150.73 d8:cb:8a:cf:f1:5d Micro-Star INTL CO., LTD.
172.16.150.73 d8:cb:8a:cf:f1:55 Micro-Star INTL CO., LTD. (DUP: 2)
我似乎找不到正确的选项来输出具有不同 MAC 的重复 IP
请帮助。
**尝试过
cat asx.txt | uniq -D -s 15 -w 33
cat asx.txt | uniq -D -s 15 -w 17-33
cat asx.txt | uniq -D -f1 -w 33
cat asx.txt | uniq -D -f1 -w 32
cat asx.txt | uniq -D -f1 -w 31
cat asx.txt | uniq -D -f1 -w 30
cat asx.txt | uniq -D -f1
cat asx.txt | uniq -D -s 15
但没有一个给出所需的输出。
答案1
每行上的标签DUP:
对您没有帮助。当您想将两条线视为相同时,它会导致两条线不同。解决这个问题的方法有两种:1)仅考虑 IP 地址和 MAC 地址;或 2)DUP:
在寻找唯一性之前删除标签。
以下是实现方法 1 的一种方法:
$ awk '{print $1 " " $2}' < asx.txt | uniq -u
172.16.150.73 d8:cb:8a:cf:f1:5d
172.16.150.73 d8:cb:8a:cf:f1:55
这是实现方法 2 的一种方法:
$ sed 's/ .\(DUP: .*\)$//' < asx.txt | uniq -u
172.16.150.73 d8:cb:8a:cf:f1:5d Micro-Star INTL CO., LTD.
172.16.150.73 d8:cb:8a:cf:f1:55 Micro-Star INTL CO., LTD.