Как красиво сделать запрос на обнаружение соседей в 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
.