如何编写一个监听网络流量的程序? (即wireshark)

时间:2012-07-11 19:26:24

标签: c++ python network-programming operating-system wireshark

  

可能重复:
  How do I programatically collect packets from passively sniffing?

我有兴趣弄清楚如何编写像wireshark这样的程序。 该程序应该能够在不中断网络流量的情况下监听任何端口。

确切的编程语言没有OS原理本身那么有趣,所以让我们说C ++或Python都可以正常工作。

你会如何在Windows上执行此操作? 在Linux上?

谢谢!

2 个答案:

答案 0 :(得分:2)

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

由于您使用标记了问题:libpcap存在python绑定(pylibpcap)。

答案 1 :(得分:1)

在Windows上,您可能希望查看WinPcap(记录良好的数据包捕获库)。您可能还有兴趣为您的网络适配器开发filter driver以捕获网络流量。

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

在Linux上,(特别是Python),您可以查看套接字库。它允许您打开INET套接字并嗅探您指定的端口。

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

享受并祝你好运!