需要找到拥有捕获数据包的进程的pid。
有没有办法不用长时间解析/proc/net/tcp
and来做到这一点/proc/<PID>/fd/
?也许,需要以另一种方式嗅探数据包?我必须找到在 C 中关联数据包及其主进程的最快方法。
答案1
我认为没有任何其他方法,/proc/net/*
并且/proc/*/fd/
似乎是什么lsof
并且netstat -p
阅读。拥有从套接字(或 tcp 端口)到进程的唯一映射也是不可能的,因为多个进程可以拥有同一套接字的副本。netstat -p
似乎只显示其中之一,lsof
当然列出了所有。另外,由于您是从数据包开始的,因此它可能根本没有原始套接字:它可能来自系统外部,或者来自原始/数据包套接字