2016-02-22 36 views
0

我试图用C语言使用libpcap分析网络流量。我想通过过程PID过滤数据包。我一直在做研究,并且显然pcap不能做我想做的事情,但是netstat可以给我关于流程pid的流量信息。使用libpcap过滤PID网络数据包

这是丑陋的称为“系统(”netstat -apn“)”或是否有任何其他我可以使用的C/C++库?我希望我的程序在Linux和Windows下运行。

回答

0

是的,system(3)generally frowned upon,你不会得到你的命令的输出。如果你想走那条路线,按照here的讨论使用popen(3)

去替代路线,在Linux上衍生的平台,我会建议对你有兴趣,并用它来建立一个bpf filter过程细节梳理/proc。您应该能够从/proc/$PID/net/{tcp, udp}中为您的进程收集four or five tuple,并使用它创建筛选字符串以捕获所需的数据包。