Quiero convertir la fuente & direcciones IP de destino de un paquete capturado usando netfilter a char *.Convertir la dirección IP de origen de struct iphdr * a una cadena equivalente usando netfilter de Linux
En mi función de enlace netfilter, tienen:
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
Gracias.
con inet_ntoa()? –
@ ott-- La conversión debe hacerse en el módulo kernel. No pude encontrar un archivo de encabezado en Linux/carpeta que contenga la función inet_ntoa(). Encontré in_aton() en linux/inet.h que hace exactamente lo contrario, convierte char * en __be32. – Jake
Vaya, kernel. Prueba esto; 'printk (" dirección-IP es "NIPQUAD_FMT" \ n ", NIPQUAD (ip_header-> saddr));'. No puedo acceder a mis servidores Linux desde aquí, así que no puedo decir dónde están definidos los macros. Y es solo para ipv4. –