从sk_buff中提取PID。

时间:2013-08-26 13:46:19

标签: linux networking kernel

我正在寻找一些方法来确定sk_buff指向的进程。我知道没有直接的方法可以做到这一点。获取sk_buff我正在使用netif_rx notifier。我不得不使用通知程序而不是NETFILTER,因为NETFILTER在中断上下文中工作(但是,如果NETFILTER在这种情况下可以以任何方式更有用,我可以切换)。
到目前为止我尝试了什么:
struct pid *sk_peer_pid获取struct sock *
struct file *与每个任务的已打开文件描述符struct files_struct进行比较。这太重了 网络命名空间。这是无用的,因为所有进程都使用相同的命名空间,并且默认情况下不会在设备上启用此功能。

我的最后一个想法是比较数据包的某种目的端口,以及进程正在侦听的端口。有没有办法做到这一点?要从数据包中获取所需的端口号,然后查找它,并查看正在侦听的进程?

0 个答案:

没有答案