Как использовать scapy для анализа пакетов sip/rtp?

Я пытаюсь написать скрипт python, используя библиотеку scapy (не pyshark), чтобы захватить пакет в реальном времени и извлечь информацию. Есть идеи, как использовать scapy (jython/python) для анализа пакетов sip/rtp?

Чтобы было понятнее, у меня был пример кода для анализа rtp-пакета, использующего Pyshark, следующим образом:

импортировать pyshark

импортировать повторно

cap = pyshark.LiveCapture (интерфейс = 'en0', display_filter = 'sip')

для меня в шапке:

  sip= str(i[3])
  print sip
  if re.search('sendonly',sip) != None:
    print ‘yes'

Можно ли этот код перенести в Scapy вместо Pyshark с той же функцией?


person Kenneth Chan    schedule 09.05.2016    source источник
comment
scrapy — это фреймворк для очистки веб-контента с веб-страниц, то, что вы ищете, — это фреймворк для сетевой проверки, такой как pyshark   -  person edoput    schedule 09.05.2016
comment
Спасибо, но я использую SCAPY, а не SCRAPY.   -  person Kenneth Chan    schedule 09.05.2016
comment
Не понятно, что вам нужно. Вы должны стремиться иметь полный, минимальный пример того, с чем вам нужна помощь. В настоящее время есть несколько мест, которые появляются из Google scapy rtp и scapy sip, в которых есть полные примеры того, что вы, кажется, спрашиваете. stackoverflow.com/questions/33088484/ является одним из них.   -  person Knetic    schedule 09.05.2016


Ответы (1)


Кеннет, для начала вам нужен захват пакетов — вы можете сделать это в scapy — или с помощью Wireshark и т. д. Теперь я предполагаю, что у вас есть файл в формате PCAP (или PCAPNG). Я также предположил, что в Wireshark вы не фильтруете, а все записываете.

Итак, внутри Scapy вы напишете что-то вроде этого....

from scapy.all import *
packets = rdpcap('filename.pcap')

Но я не вижу определения Layer для SIP внутри Scapy, а это значит, что вам нужно будет разработать его самостоятельно.

Не паникуйте - кто-то уже добавил это для себя. Пожалуйста, взгляните на https://github.com/cssaheel/dissectors/blob/master/sip.py

Вы должны быть в пути

person Tim Seed    schedule 10.05.2016
comment
Вы можете использовать функцию scapy sniff для захвата непосредственно в скрипте (см. документацию, раздел 8.2.1). - person Jeff Bencteux; 10.05.2016