IP-address from sk_buff

Rohit picture Rohit · Feb 25, 2009 · Viewed 14.1k times · Source

I am writing a kernel module which registers a netfilter hook. I am trying to get the ip address of the caller by using the sk_buff->saddr member. Is there a way I can get the IP in human readable i.e. x.x.x.x format?

I found the function inet_ntop() but it doesn't seem to be available in kernel headers. How do I convert \xC0\xA8\x00\x01 to 192.168.0.1 ?

Answer

Cong Wang picture Cong Wang · Nov 16, 2012

You should use the %pI4 extended format specifiers provided by printk():

printk(KERN_DEBUG "IP addres = %pI4\n", &local_ip);