识别icmpv6类型

2024-05-29 09:34:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在pythonscapy中,如何基于icmpv6类型进行过滤。例如,如果icmpv6类型为135(邻居请求),如何使用此类型的表达式进行筛选:

if(x == 135):  
    do this  

我想在上面找到x表情。那里在scapy中是TCP、UDP、IPv6的标签,但ICMPv6没有标签。例如,要访问包p中IPv6报头中的源地址参数,我可以使用p[IPv6].src,因为scapy中有IPv6标记。但是如何访问ICMPv6参数呢?在

如果使用scapy或此方法无法完成,请建议其他方法。这个问题一直困扰着我。谢谢。在


Tags: 方法类型参数if表达式标签thisdo
1条回答
网友
1楼 · 发布于 2024-05-29 09:34:25

您应该使用Packet.haslayer('ICMPv6ND_NS')。。。在

>>> from scapy.all import rdpcap
>>> paks = rdpcap('ipv6.pcap')
>>> for idx, pak in enumerate(paks):
...     if pak.haslayer('ICMPv6ND_NS'):
...         print "Index %s: %s" % (idx, repr(pak))
...
Index 3: <Ether  dst=00:21:a0:50:ce:00 src=00:02:55:7b:b2:f6 type=0x86dd |
<IPv6  version=6L tc=0L fl=0L plen=32 nh=ICMPv6 hlim=255 
src=fe80::202:55ff:fe7b:b2f6 dst=fe80::221:a0ff:fe50:ce00 |
<ICMPv6ND_NS  type=Neighbor Solicitation code=0 cksum=0x8b54 R=0L S=0L 
O=0L res=0x0L tgt=fe80::221:a0ff:fe50:ce00 |<ICMPv6NDOptSrcLLAddr  type=1 
len=1 lladdr=00:02:55:7b:b2:f6 |>>>>
>>>

仅供参考,这些是ipv6.pcap中的数据包。。。在

^{pr2}$

相关问题 更多 >

    热门问题