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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.