Puis-je utiliser la bibliothèque pcap pour recevoir des paquets ipv6?

J’essaye de convertir hping3 en hping6. hping3 utilise la bibliothèque Pcap pour recevoir des paquets IPv4. Mais je dois recevoir des paquets IPv6.

C’est possible. libpcap peut attraper n’importe quoi sur le fil.

Exemple utilisant ETHERTYPE_IPV6 :

 static u_int16_t ether_packet(u_char *args, const struct pcap_pkthdr *pkthdr, co nst u_char *p) { struct ether_header *eptr = (struct ether_header*)p; assert(pkthdr->caplen <= pkthdr->len); assert(pkthdr->caplen >= sizeof(struct ether_header)); return eptr->ether_type; } // This is the callback. assumes ethernet frame. static void pcap_callback(u_char *args,const struct pcap_pkthdr* pkthdr,const u_ char* p) { const u_int16_t type = ether_packet(args, pkthdr, p); switch (ntohs(type)) { case ETHERTYPE_IP: // handle IPv4 break; case ETHERTYPE_IPV6: // handle v6 break; } }