gpt4 book ai didi

python - Scapy - 如何检查嗅探数据包的数据包类型

转载 作者:太空狗 更新时间:2023-10-30 03:03:14 24 4
gpt4 key购买 nike

我正在嗅探数据包,需要知道哪些数据包是 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,正如文档中不同地方所说的那样。例如,在 Download and Installation 中:

Scapy v2.x. The current development version adds several features (e.g. IPv6).

如果您使用的是 2.x,它应该可以与 IPv6 一起正常工作。比如我的电脑(Scapy 2.1.0,苹果预装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'>

关于python - Scapy - 如何检查嗅探数据包的数据包类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com