使用python进行网络嗅探

2024-04-24 12:46:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我要为大学开发一个嗅探软件。我有一些想法,但想再听听。我们的想法是在防火墙的前端使用一个被动的窃听器,以便获取所有数据。。。

我知道C是更快的,但是我想用python来实现它有什么好的想法,比如库等等?

参考文献:


Tags: 数据httpnet软件linuxwwwunix参考文献
2条回答

使用^{}。它提供了libpcap的接口,libpcap实际上是linux上包嗅探的标准。若要分析数据包,可能需要使用^{}库,因为它已经包含TCP数据包的解析器。

下面是一个小的示例程序:

import pcap
from construct.protocols.ipstack import ip_stack

def print_packet(pktlen, data, timestamp):
    if not data:
        return

    stack = ip_stack.parse(data)
    payload = stack.next.next.next
    print payload


p = pcap.pcapObject()
p.open_live('eth0', 1600, 0, 100)
p.setfilter('dst port 80', 0, 0)

print 'Press CTRL+C to end capture'
try:
    while True:
        p.dispatch(1, print_packet)
except KeyboardInterrupt:
    print # Empty line where ^C from CTRL+C is displayed
    print '%d packets received, %d packets dropped, %d packets dropped by interface' % p.stats()

为什么不使用Scapy??这是我所知道的最简单的方法,见下面的链接:

http://www.youtube.com/watch?v=c7ZdmnxPZw8

相关问题 更多 >