2012-07-11 84 views
2

可能重複:
How do I programatically collect packets from passively sniffing?如何編寫監聽網絡流量的程序? (即Wireshark的)

我很感興趣,搞清楚如何去寫Wireshark之​​類的程序。 該程序應該能夠監聽任何端口而不會中斷網絡流量。

確切的編程語言比操作系統原理本身更有趣,所以我們假設C++或Python可以正常工作。

你會如何在Windows上做到這一點? 在Linux上?

謝謝!

+0

欺騙不包含任何關於在窗口上的數據包嗅探... – ThiefMaster 2012-07-11 19:30:53

+2

不重複:這個問題涉及不同的語言和平臺。在建議的等效問題中沒有WINDOWS的提示。 – 2012-07-11 20:00:53

回答

2

在Linux上,您使用libpcap,在Windows上使用它的Windows端口,winpcap

由於您用標記了問題:libpcap有python綁定(pylibpcap)。

1

在Windows上,您可能需要查看WinPcap(記錄良好的數據包捕獲庫)。您可能還有興趣爲您的網絡適配器開發filter driver以捕獲網絡流量。

參考http://www.winpcap.org/

在Linux上,(尤其是Python的),你可以看看套接字庫。它將允許您打開一個INET套接字並在您指定的端口上嗅探。

參考http://docs.python.org/library/socket.html

享受和好運氣!