Очевидно, что вы можете найти MAC-адрес только для напрямую подключенных IP-адресов, но не существует независимого от платформы способа сделать это.В Linux вы можете заглянуть в /proc/net/arp
после отправки чего-либо в цель, чтобы ядро отправило ARP.
Редактировать, чтобы добавить, вы также можете использовать SIOCGARP
ioctl()
, хотя это просто выглядитARP-кеш, поэтому он не будет отправлять ARP, если его там еще нет.
В противном случае вам придется создать свой собственный пакет запроса ARP.Возможно, вы могли бы повторно использовать кучу кода из arping , если вы пойдете по этому пути.