Linux kernel NetFilterHook:显示接口名称

Linux kernel NetFilterHook:显示接口名称,linux-kernel,hook,kernel-module,netfilter,Linux Kernel,Hook,Kernel Module,Netfilter,如何筛选和/或显示数据包从内核空间到达的接口的名称 更具体地说,我希望在内核中打印接口的名称,例如eth0、wlan1等 其次,如何仅从特定接口(例如仅eth0)过滤数据包 在钩子函数中,有参数const-struct-net\u-device*In和const-struct-net\u-device*out。 您可以通过以下方式进行打印: printk(KERN_INFO "%s\n", out->name); 或: 注意:您需要检查是否为空 关于第二个问题,您可以在strcmp(in

如何筛选和/或显示数据包从内核空间到达的接口的名称

更具体地说,我希望在内核中打印接口的名称,例如eth0、wlan1等


其次,如何仅从特定接口(例如仅eth0)过滤数据包

在钩子函数中,有参数
const-struct-net\u-device*In
const-struct-net\u-device*out
。 您可以通过以下方式进行打印:

printk(KERN_INFO "%s\n", out->name);
或:

注意:您需要检查是否为空


关于第二个问题,您可以在
strcmp(in->name,“eth0”)
中的hook函数中使用,然后决定放弃或接受只是打印一个空格?如果是,则将其更改为
printk(内核信息“%s\n”,out->name)内核恐慌和我的笔记本电脑都应该打印设备的名称。如果钩子函数在传入的数据包上注册,则应使用
printk(内核信息“%s\n”,in->name)。输出为“eth0”、“eth1”等。如果您需要更多帮助,请让我知道您到底想做什么。非常感谢您我的笔记本电脑出现了问题。上述功能在另一台计算机上运行良好
printk(KERN_INFO "%s\n", in->name);