2012-07-11 91 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

享受和好运气!