Мне нужен код на C или C ++, скомпилированный под Linux, чтобы иметь возможность взять список IP-адресов произвольного числа удаленных хостов и получить MAC-адрес Ethernet для каждой из них.Эти хост-машины могут находиться в одной подсети или в другой подсети за маршрутизатором.Это нормально, если MAC-адрес некоторых или всех удаленных хостов является адресом интерфейса на маршрутизаторе.В конечном итоге я хочу передать IP-адрес и MAC-адрес FPGA, которая будет использовать эти фрагменты информации для форматирования и отправки пакетов UDP / IP через Ethernet на хосты.Очевидно, что FPGA также будет предоставлен собственный MAC-адрес и IP-адрес для заполнения MAC-адреса источника и IP-адреса источника в пакетах.
Есть ли какой-то код, на который можно указать, который может создавать и транслировать ARPпакеты на эти удаленные машины и получить обратно ответные пакеты ARP, чтобы можно было извлечь MAC-адреса назначения?