2016-02-22 37 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,並使用它創建篩選字符串以捕獲所需的數據包。