我在谷歌上找不到很好的结果。是否有适用于Wireshark的API,可以将其与主源代码分离,以便我们可以开发与其交互并处理其提供的数据的程序?
编辑:感谢您提供了不同的接收数据包的建议,但是我想要实现将数据包注入Wireshark。嗅探将是项目的重要部分,但我不确定所提供的解决方案是否允许数据包注入。
我在谷歌上找不到很好的结果。是否有适用于Wireshark的API,可以将其与主源代码分离,以便我们可以开发与其交互并处理其提供的数据的程序?
编辑:感谢您提供了不同的接收数据包的建议,但是我想要实现将数据包注入Wireshark。嗅探将是项目的重要部分,但我不确定所提供的解决方案是否允许数据包注入。
pypcap
来读取数据包,同时使用 dpkt
进行解析。
例如,要使用 dpkt 从保存的 pcap 中读取数据包:
import socket
import dpkt
import sys
pcapReader = dpkt.pcap.Reader(file(sys.argv[1], "rb"))
for ts, data in pcapReader:
ether = dpkt.ethernet.Ethernet(data)
if ether.type != dpkt.ethernet.ETH_TYPE_IP: raise
ip = ether.data
src = socket.inet_ntoa(ip.src)
dst = socket.inet_ntoa(ip.dst)
print "%s -> %s" % (src, dst)
使用pypcap从网络中抓取帧:
import pcap
pc = pcap.pcapObject()
dev = sys.argv[1]
pc.open_live(dev, 1600, 0, 100)
pc.setfilter("udp port 53", 0, 0)
while 1:
pc.dispatch(1, p.pcap_dispatch)
>>> import dpkt, pcap
>>> pc = pcap.pcap()
>>> pc.setfilter('icmp')
>>> for ts, pkt in pc:
... print `dpkt.ethernet.Ethernet(pkt)`
祝你好运!