我正在尝试使用scapy(而不是pyshark)库编写一个python脚本来实时捕获数据包并提取信息。知道如何使用scapy(jython / python)来分析sip / rtp数据包吗?
为了更清楚,我有一个示例代码来分析使用Pyshark的rtp数据包如下:
导入pyshark
导入重新
cap = pyshark.LiveCapture(interface ='en0',display_filter ='sip')
我的帽子:
sip= str(i[3])
print sip
if re.search('sendonly',sip) != None:
print ‘yes'
这个代码是否可以转移到Scapy而不是Pyshark具有相同的功能?
答案 0 :(得分:1)
午, 首先,您需要一些数据包捕获 - 您可以在scapy中执行此操作 - 或使用Wireshark等。我现在假设您有一个PCAP(或PCAPNG)格式的文件。我还假设您在Wireshark中没有过滤 - 而是记录所有内容。
所以在Scapy里面你会写这样的东西......
from scapy.all import *
packets = rdpcap('filename.pcap')
但我无法在Scapy中看到SIP的 Layer 定义 - 这意味着您需要自己开发它。
不要惊慌 - 有人已经为自己补充了这一点。请查看https://github.com/cssaheel/dissectors/blob/master/sip.py
你应该顺利前往