[英]method to change __be32 ip address into char in kernel space
我正在制作一个模块,我需要将地址的 __be 32 格式更改为 char,我可以使用哪个函数以及它来自哪个头文件(我知道将 char 转换为 __be32 我们使用 in_aton)。
For kernels older than 2.6.26(if not mistaken) you need to use the NIPQUAD
macro, like:对于早于 2.6.26 的内核(如果没有记错的话),您需要使用NIPQUAD
宏,例如:
pritk("%d.%d.%d.%d\n", NIPQUAD(your_b32_address));
For newer kernels a switch to printk
was added:对于较新的内核,添加了到printk
的开关:
printk("%pI4\n", your_b32_address);
Have a look here: http://www.kernel.org/doc/htmldocs/kernel-hacking/common-routines.html看看这里: http : //www.kernel.org/doc/htmldocs/kernel-hacking/common-routines.html
I would like to clarify that if you have我想澄清一下,如果你有
__be32 ipaddr;
you must pass the address of 'ipaddr' to printk您必须将 'ipaddr' 的地址传递给 printk
printk("%pI4\n", &ipaddr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.