一尘不染

Linux API确定进程拥有的套接字

linux

是否有Linux库可以使我知道哪些进程拥有哪些IP套接字?我想我正在寻找的程序化等效项lsof -i。最终,我想将透视的数据包libpcap与进程关联起来。

更新: 有人建议使用/proc/<pid>/net/tcpudp,但是在我的系统上,每个进程都显示相同的数据,因此无济于事。


阅读 243

收藏
2020-06-07

共1个答案

一尘不染

我认为您首先必须浏览/ proc / * / fd中打开的fds,例如

4 -> socket:[11147]

然后在/ proc / net / tcp(或/ proc / net / udp)中查找引用的套接字(通过inode),例如

12: B382595D:8B40 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000  1000        0 11065 1 ffff88008bd35480 69 4 12 4 -1
2020-06-07