Можно ли читать ответы ARP с помощью Libnet? Я специально искал кроссплатформенную библиотеку для чтения ARP-сокетов, написанных на C / C ++
libnet
библиотека для создания и внедрения переносимых пакетов Потребление и декапсуляция должны быть сделаны в другом месте. Я предлагаю libtrace
или же libpcap
чтобы помочь с этим бизнесом.
libnet
прежде всего полезно, если вы хотите создавать и внедрять пакеты ARP. Чтобы увидеть, как это делается, взгляните на пример кода ARP. Кроме того, после того, как пакеты оторваны от проводника / эфира / файла, libnet
может быть полезным для его rolodex определений заголовков переносимых пакетов. В вашем случае вы хотели бы взглянуть на struct libnet_arp_hdr
. Вы можете преобразовать захваченный пакет в заголовок ARP, выполнив что-то вроде:
...
struct libnet_arp_hdr *arp_h;
buf = capturepacket();
...
arp_h = (struct libnet_arp_hdr *)buf + LIBNET_ETH_H;
...
switch (arp_h->ar_op)
{
case ARPOP_REQUEST:
...