我正在尝试使用 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上实现同样的功能吗?
最佳答案
肯尼思, 首先,您需要一些数据包捕获 - 您可以在 scapy 中执行此操作 - 或使用 Wireshark 等。我现在假设您有一个 PCAP(或 PCAPNG)格式的文件。我还假设在 Wireshark 中您不是进行过滤,而是记录一切。
所以在 Scapy 中你会写这样的东西......
from scapy.all import *
packets = rdpcap('filename.pcap')
但是我在 Scapy 中看不到 SIP 的层定义 - 这意味着您需要自己开发它。
不要 panic - 有人已经为自己添加了该内容。请查看https://github.com/cssaheel/dissectors/blob/master/sip.py
你应该一切顺利
关于python - 如何使用scapy分析sip/rtp数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122546/