编程语言
首页 > 编程语言> > 网络嗅探python

网络嗅探python

作者:互联网

我打算为大学制作一个嗅探软件.我有一些想法,但想再听一些.这个想法是在防火墙前面使用被动水龙头,所以获取所有数据…

我知道C更快但我想用python做任何好的想法,如库等?

参考文献:

> http://www.flyninja.net/?p=13
> http://www.cyberciti.biz/tips/linux-unix-manipulating-packet-data-tool.html
> http://wiki.wireshark.org/CaptureSetup/Ethernet

解决方法:

使用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()

标签:python,networking,network-programming,sniffing
来源: https://codeday.me/bug/20190715/1470382.html