Я ищу способ получить MAC-адрес определенного хоста в сети LAN. Я знаю его IPv6-адрес. В идеале я хотел бы, чтобы ядро Linux выполняло запрос соседа для меня, тогда я мог бы получить MAC-адрес хоста с помощью команды ip -6 neighbour
Прямо сейчас, единственный способ, который я нашел для запуска запрос соседа - попытаться установить TCP-соединение с хостом через случайный порт. Но я не считаю это решение действительно красивым:
curl --connect-timeout 1 "http://[fe80::1234%eth0]:12345"
Из-за вашего требования, чтобы это было отражено в соседях ядра, и вашего нежелания устанавливать программное обеспечение, попробуйте ICMP echo:
ping -c 1 fe80::1234%eth0
Does на самом деле не имеет значения, какой протокол вы пытаетесь использовать, если он основан на IP.
Если вы хотите установить программное обеспечение, у Nmap есть функции обнаружения. Вот только сканирование NDP, вывод в XML-файл (и стандартный вывод), который включает адрес канального уровня:
nmap -sn -PR -oX /tmp/lladdr.xml -6 fe80::1234%eth0
По-видимому, этот тип сканирования nmap дает ядру возможность выполнить обнаружение соседей, так как при тестировании я вижу, что он снова появляется в разделе
nmap -sn -PR -oX /tmp/lladdr.xml -6 fe80::1234%eth0
1140398] ip neigh .