我要为大学制作一个嗅探软件。我有一些想法,但想再听一些。我们的想法是在防火墙前面使用被动水龙头,以便获得所有数据......
我知道C更快但我想用python做任何好的想法,如库等?
参考:
答案 0 :(得分:11)
使用pylibcap
。它为libpcap提供了一个接口,libpcap是linux上数据包嗅探的事实标准。要解析数据包,您可能希望使用construct
库,因为它已包含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()
答案 1 :(得分:1)
为什么不使用Scapy?这是我所知道的最简单的方法,请参阅以下链接: