[linux] Probleme avec la libpcap
Bonjour, j'aurais besoin d'aide au sujet de la libpcap, je cherche comment avoir acces aux données des paquets sniffé par la fonction pcap_loop(). Je vous donne ma fonction callback()
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| void callback(u_char *user, const struct pcap_pkthdr *h, const u_char *buff)
{
struct iphdr *ip_hdr = (struct iphdr *)(buff+14);
struct protoent *prot = getprotobynumber(ip_hdr->protocol);
struct in_addr adrsend,adrrecv;
adrsend.s_addr = ip_hdr->saddr;
adrrecv.s_addr = ip_hdr->daddr;
printf("Packet de taille : %d | protocole : %s\n",h->len,prot->p_name);
printf("De: %s | A: %s\n",inet_ntoa(adrsend),inet_ntoa(adrrecv));
printf("TTl: %d | Version:IPv%d \n\n",ip_hdr->ttl,ip_hdr->version);
printf("Packet \n\t%c\n",buff[0]);
} |
et mon probleme est que je voudrais faire un printf("Contenu du packet : %s \n\n",??->??); et il me manque l'endroit ou je peut l'obtenir, et également l'ip du destinataire ne marche pas, il donne dans les 2 cas l'adresse ip de la box qui as envoyé le pquet, comment optenir l'ip^du destinataire (celui qui recoit le packet).
En vous remerciant d'avance :)
A tres bientot