La famiglia del kernel di printf() functions ha uno speciale identificatore di formato per gli indirizzi IP (%pI4 per gli indirizzi IPv4, %pI6 per IPv6).
Quindi, con IPv4, potresti usare qualcosa come:
char source[16];
snprintf(source, 16, "%pI4", &ip_header->saddr); // Mind the &!
Oppure scrivi nella memoria allocata dinamicamente.
 Se vuoi semplicemente stampare l'output di debug, puoi anche usare printk() . Per le molte altre caratteristiche di %p , consulta questo documento.