Как красиво сделать запрос на обнаружение соседей в Linux?

Я ищу способ получить MAC-адрес определенного хоста в сети LAN. Я знаю его IPv6-адрес. В идеале я хотел бы запустить ядро ​​Linux для выполнения запроса соседа для меня, тогда я мог бы получить MAC-адрес хоста с помощью команды ip -6 neighbour

Прямо сейчас я нашел единственный способ вызвать запрос соседа - это попытаться установить TCP-соединение с хостом на случайном порту. Но я не считаю это решение действительно красивым:

curl --connect-timeout 1 "http://[fe80::1234%eth0]:12345"

2 ответа

Решение

Из-за вашего требования, чтобы это было отражено в соседях ядра, и вашего нежелания устанавливать программное обеспечение, попробуйте ICMP echo:

ping -c 1 fe80::1234%eth0

На самом деле не имеет значения, какой протокол вы пытаетесь использовать, если он основан на IP.

Если вы хотите установить программное обеспечение, в Nmap есть функции обнаружения. Вот сканирование только NDP, вывод в файл XML (и стандартный вывод), который включает адрес канального уровня:

nmap -sn -PR -oX /tmp/lladdr.xml -6 fe80::1234%eth0

По-видимому, этот тип сканирования nmap побуждает ядро ​​выполнять обнаружение соседей, так как при тестировании я вижу, что он снова появляется в ip neigh.

ndisc6 -1 fe80::1234 eth0

Заменить eth0 с правильным именем интерфейса, конечно.

Другие вопросы по тегам