2014-08-28 91 views
-1

IP邻居为某些设备返回IPV6地址,尽管这些设备都具有IPV4。我怎样才能设置它,使它只返回IPV4地址?IP邻居获取IPV4地址

fe80::a7a:4cff:fe9f:a03a dev br-lan lladdr 08:7a:4c:9f:a0:3a STALE 
fe80::8ebe:beff:fede:afaf dev br-lan lladdr 8c:be:be:de:af:af STALE 
fe80::ba8d:12ff:fe24:3076 dev br-lan lladdr b8:8d:12:24:30:76 STALE 
192.168.0.22 dev br-lan FAILED 
192.168.0.21 dev br-lan lladdr b8:8d:12:24:30:76 DELAY 
192.168.0.1 dev br-lan lladdr 00:00:00:00:02:00 STALE 
+0

我不熟悉IP的邻居是怎么叫,但你可以管你输出为grep,如下所示:'grep“[[:digit:]] {1,3} \。[[:digit:]] {1,3} \。[[:digit:]] {1,3} \ 。[[:digit:]] {1,3}“-E' – 2014-08-28 17:58:11

+0

@ChrisForrence'ip neigh show'。 – admdrew 2014-08-28 17:59:27

回答

2

I 相信ip nei s to 0/0ip nei s to 0::0/0分别只显示IPv4和IPv6地址。

$ ip nei help 
Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ] 
      [ nud { permanent | noarp | stale | reachable } ] 
      | proxy ADDR } [ dev DEV ] 
     ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ] 
+1

喜欢这个答案,保存。 – admdrew 2014-08-28 19:05:59

1

您可以将IP邻居的输出传输到grep,只显示那些匹配IPv4地址的IP地址。

ip neigh show | \ 
    grep "^[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}" -E 

为了解释表达式,它从字符串的开始处搜索一到三位数字,后跟一个句点。这个重复三次,然后结束,最后搜索一到三位数字。

2

所有ip命令采取-family inet选项,或-4的简称。

man ip(8)

OPTIONS := ... -f[amily] { inet | inet6 | ipx | dnet | link } 

...

-4  shortcut for -family inet. 

所以,你可以做

ip -4 neigh show