1

когда я использую эту команду:

arp -a | grep "192.168.0.19" | awk '{ print $4 }'

Я получаю эти результаты ... MAC-адрес ff:ff - это то, что я хочу, но почему я получаю поле (неполное)s? Все, что я хочу, это просто MAC-адрес с определенного IP-адреса, с которого я извлекаю информацию.

ff:ff:ff:ff:ff:ff
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)

1 ответ1

2

Очевидно, вы недавно пытались получить доступ к 192.168.0.190 , 192.168.0.191 ,… 192.168.0.199 (обратите внимание, что есть 10 (incomplete) с. Эти адреса не могут быть достигнуты, но кеш ядра все еще хранит свои неполные записи.

Я думаю, если вы сделали arp -a | grep "192.168.0.19" вы можете узнать это сами.

Мой arp -a (в Ubuntu 14.04.5 LTS) помещает IP-адреса в скобки. Пытаться:

arp -a | grep "(192.168.0.19)" | awk '{ print $4 }'

Или вы можете отфильтровать (incomplete) s с опцией -v grep:

arp -a | grep "192.168.0.19" | grep -v "(incomplete)" | awk '{ print $4 }'

К сожалению! Последняя версия может возвращать MAC-адреса хостов, которые вы не ожидаете. Подумайте, что произойдет, если в 192.168.0.19 будет неполная запись и, например, в 192.168.0.190 есть полная. Я оставляю это здесь для образовательных целей.

Тем не менее, grep -v может быть полезен (обратите внимание, что круглые скобки рядом с IP-адресом вернулись):

arp -a | grep "(192.168.0.19)" | grep -v "(incomplete)" | awk '{ print $4 }'

Таким образом, вы получите желаемый MAC-адрес или ничего, если для этого IP-адреса нет полной записи.

Наконец, мой arp может вернуть информацию только о конкретном IP: arp -a 192.168.0.19 . Это лучший способ начать. Вся команда может выглядеть так:

arp -a 192.168.0.19 | grep -v "(incomplete)" | awk '{ print $4 }'

Ой снова! Подводные камни везде. Эта последняя команда не вернет ничего, если имя хоста 192.168.0.19 похоже на foobar-(incomplete) . Улучшенная версия:

arp -a 192.168.0.19 | awk '{ print $4 }' | grep -v "(incomplete)"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .