В целом, это будет зависеть от вашей ОС. Для этого нет реального стандартного API.
Если вы работаете в Linux, откройте и выполните синтаксический анализ / proc / net / arp. Формат аналогичен формату вывода команды arp. Обратите внимание, что вы должны отправить пакет по рассматриваемому IP-адресу хотя бы один раз, чтобы иметь его в таблице ARP, и, конечно, вы не получите ничего за пределами вашего локального сегмента.
Достать IP-адрес в этот кэш достаточно просто - просто отправьте ему пакет UDP, например, на какой-то неиспользуемый порт, а затем выполните опрос, пока он не появится.
Другой альтернативой может быть использование необработанного сокета для создания и отправки собственного пакета arp, но это гораздо сложнее :) Если вы действительно хотите пойти по этому пути, изучите исходный код для arping (страница закрыта сегодня, но git repo онлайн), что также может дать вам немного больше переносимости, используя библиотеки, независимые от платформы, такие как libpcap (но требует root)