Konvertieren Quell-IP-Adresse vom struct iphdr* string-äquivalent unter Linux netfilter

Ich umwandeln wollen, Quelle & Ziel-IP-Adressen aus einem Paket erfasst mit netfilter char *.

In meinem netfilter-hook-Funktion, die ich habe:

sock_buff = skb; //argument 2 of hook function

//ip_header is struct iphdr*
ip_header = (struct iphdr *)skb_network_header(sock_buff);

//now how to convert ip_header->saddr & ip_header->daddr to char *
//ip_header->saddr & ip_header->daddr are of type __be32

Dank.

  • Mit inet_ntoa()?
  • Die Konvertierung erfolgt in das kernel-Modul. Ich konnte nicht finden, eine header-Datei linux/ Ordner mit inet_ntoa () - Funktion. Ich habe in_aton() in linux/inet.h die tut genau das Gegenteil, wandelt char* to __be32.
  • Hoppla, kernel. Versuchen Sie dieses; printk("ip-address is " NIPQUAD_FMT "\n", NIPQUAD(ip_header->saddr));. Ich habe keinen Zugriff auf meine linux-hosts von hier, so kann ich Ihnen nicht sagen, wo die Makros definiert sind. Und es ist nur für ipv4.
InformationsquelleAutor Jake | 2012-02-15
Schreibe einen Kommentar