簡體   English   中英

Scapy - 如何檢查嗅探包的數據包類型

[英]Scapy - how to check packet type of sniffed packets

我在嗅探數據包,需要知道哪些數據包是ICMPv6 Echo Request數據包,哪些數據包是UDP數據包。

我知道我能做到

P = sniff(filter='ip6 and host fe80::xx:xx:xx:xx',count=0)

IP in P  #will return false (my packets are IPv6)
UDP in P #will return true (when the specific packet is indeed UDP)

但我不知道如何檢查ICMPv6數據包,甚至更具體地說是ICMPv6 Echo Request數據包......看起來我甚至無法檢查IP版本6:

IPv6,IP6,ipv6,ip6,icmpv6,ICMPv6,icmp6,ICMP6全部返回

NameError: name 'x' is not defined

有誰知道這樣做的方法嗎?

如果您使用的是Scapy v1.x,則它不會處理IPv6,因為它在文檔中的各個位置都有說明。 例如,在下載和安裝中

Scapy v2.x. 當前的開發版本增加了幾個功能(例如IPv6)。

如果您使用的是2.x,它應該可以正常使用IPv6 例如,在我的計算機上(Scapy 2.1.0,Apple預安裝的Python 2.7.2,OS X 10.8.5):

>>> P = sniff(filter='ip6', count=0)
… make sure to capture an IPv6 UDP packet …
>>> UDP in P
False
>>> IPv6 in P
False
>>> UDP in P[0]
True
>>> IPv6 in P[0]
True
>>> P[0][IPv6]
<IPv6  version=6L tc=0L fl=0L plen=98 nh=UDP …
>>> ICMPv6EchoRequest in P[0]
False
>>> ICMPv6EchoRequest
<class 'scapy.layers.inet6.ICMPv6EchoRequest'>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM