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

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

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

curl --connect-timeout 1 "http://[fe80::1234%eth0]:12345"
3
задан 4 October 2020 в 20:50
2 ответа

Из-за вашего требования, чтобы это было отражено в соседях ядра, и вашего нежелания устанавливать программное обеспечение, попробуйте 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 .

2
ответ дан 4 January 2021 в 07:40
ndisc6 -1 fe80::1234 eth0

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

4
ответ дан 4 January 2021 в 07:40

Теги

Похожие вопросы