2016-05-09 163 views
0

我想寫一個python腳本使用scapy(而不是pyshark)庫來捕捉數據包並提取信息。任何想法如何使用scapy(jython/python)來分析sip/rtp數據包?如何使用scapy分析sip/rtp數據包?

爲了使它更清楚,我有一個樣本代碼來分析它們使用Pyshark如下RTP分組:

進口pyshark

進口重新

帽= pyshark.LiveCapture(接口= 'EN0',display_filter =在帽的 'SIP')

對於i:

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

此代碼是否可以通過相同的函數傳遞給Scapy而不是Pyshark?

+0

scrapy是刮從網頁的網頁內容的框架,你正在尋找一個淨檢查框架,像pyshark – EdoPut

+1

謝謝,但我我正在使用的是SCAPY而不是SCRAPY。 –

+0

目前尚不清楚你需要什麼。您應該努力獲得您需要幫助的完整,最簡單的示例。就目前而言,谷歌出現了多個來自「scapy rtp」和「scapy sip」的地方,這些地方都有你似乎在問的事情的完整例子。 http://stackoverflow.com/questions/33088484/error-writing-scapy-rtp-packet-with-payload-type-to-pcap就是其中之一。 – Knetic

回答

0

Kenneth, 首先,您需要捕獲一些數據包 - 您可以在scapy中執行此操作 - 或使用Wireshark等。我現在假定您有PCAP(或PCAPNG)格式的文件。我還假定在Wireshark中你不是過濾 - 而是記錄一切。

所以裏面Scapy的你會寫這樣的事情....

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

但我無法看到裏面Scapy的一個層定義SIP - 這意味着你需要自己開發。

不要驚慌 - 有人已經爲自己補充說。請看看https://github.com/cssaheel/dissectors/blob/master/sip.py

你應該用自己的方式

+0

您可以直接在腳本中使用scapy'sniff'函數捕獲(參見[documentation](http://www.secdev.org/projects/scapy/files/scapydoc.pdf),第8.2.1節)。 –