2014-06-05 55 views
1

我目前正在开发一个项目来监视我的系统的网络使用情况。我打算添加的一个功能是能够获取特定流程的使用情况(上传和下载)。我正在使用的库是libpcap。有没有什么办法可以在不使用第三方库的情况下获得数据包的进程ID?如果libpcap没有进程ID,是否可以使用任何第三方库?我正在Linux上开发,但我确实希望它是跨平台的。libpcap获取数据包的进程ID

回答

1

嘛进程ID不在包,这样的libpcap不会有它,所以你要和操作系统特定的东西搏斗到相关的端口连接到的ProcessID。

您可以调查SNMP,特别是TCPConnTable和TCPConnectionTable。大多数平台都支持其中一种,如果不是默认启用的话。

+0

我想获得所有数据包的进程标识,而不仅限于TCP,例如http和UDP。这种方法仍然有效吗?对不起,如果我听起来像一个白痴,我是相对较新的网络协议。 – user3103398

+0

HTTP仍然是TCP。 UDP数据也可以通过SNMP获得。 – EJP