python - 如何使用scapy分析sip/rtp数据包?

标签 python jython sip rtp scapy

我正在尝试使用 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/

相关文章:

python - 提取一些 SIP header

ios - 将 Linphone 集成到自己的 iOS 项目中

python - 具有附加值的 Argparse 参数

jython - 在 Jython 中将 int 变量类型转换为字符串,以便在 Sikuli 中使用

javascript - 无法使用 Ant 在 Javascript 或 Jython 中创建 XSLT 扩展

Java 类方法不会在使用 Eclipse Pydev 的 Jython 中自动完成

sip - 如何在kamailio中配置测试用户?

python - 如何使用两个数组作为返回值压缩函数 - Python

python - 应用引擎 : CPU Over Quota on urlfetch()

python - Jinja2 中关于 for 语句的 If 语句