LINUX.ORG.RU
strace arp

P.S. IP=Internet Protocol, MAC=Media Access Control. Разницу между протоколом и адресом понимаешь?
anonymous
()
Я бы посмотрел исходники arp.
anonymous
()
Ответ на: комментарий от anonymous
>strace arp

>P.S. IP=Internet Protocol, MAC=Media Access Control. Разницу между протоколом и адресом понимаешь?

Понимаю!

Насчет исходников - лень. Я думал, кто-нибудь знает:(

olegk ★★
() автор топика
Тут 3 варианта. 

- Вызвать arp и отпарсить ее выхлоп;
- Проанализировать исходники arp, просветлится и научится читать данные из системной ARP-таблицы;
- Прочитать про RFC Addr Resolution Protocol, просветлится и написать через libnet/libpcap свою реализацию этого протокола.

Пункты расставлены в порядке приоритета для ленивого человека. 
ukez
()
Ответ на: комментарий от olegk
>Насчет исходников - лень. Я думал, кто-нибудь знает:(

Молчел, вы быстро читаете или медленно соображаете.
Еще раз: strace arp.
anonymous
()
Ответ на: комментарий от ukez
Посмотрел исходники. Оказывается все было просто, как я и думал. В функции static int arp_show(char *name) просто читается файл /proc/net/arp.

Я полагал, что существует стандарт на получения информации из arp таблицы, поэтому и задал вопрос. Например, такой способ не сработает в FreeBSD. Т.е. необходим кроссплатформенный способ. Не буду заморачивать вам голову, спасибо всем, кто ответил.

За strace тоже спасибо, просто разбирать системные вызовы еще больше лень:)

olegk ★★
() автор топика
Ответ на: комментарий от olegk
>А man читать не интересно:)))

Ну как знаешь, тебе виднее :)
seiken ★★★★★
()
Ответ на: комментарий от olegk
Наиболее кроссплатформенным я думаю будет вызов arp как внешней программы. По крайней мере в венде arp тоже есть.
ukez
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.