scapy.contrib.igmpv3

class scapy.contrib.igmpv3.IGMPv3(*args, **kargs)

Bases: scapy.contrib.igmp.IGMP

v3的IGMP消息类.

该类派生自Packet类. 下面定义的字段是v3成员资格查询消息的直接解释. 字段"类型"至" qqic"可直接分配. 对于" numsrc",请勿分配值. 而是添加到" srcaddrs"列表以自动设置" numsrc". 要将值分配给" srcaddrs",请使用以下方法:

c = IGMPv3()
c.srcaddrs = ['1.2.3.4', '5.6.7.8']
c.srcaddrs += ['192.168.10.24']

此时," c.numsrc"为三(3)

" chksum"是在发送数据包之前自动计算的.

" mrcode"也是"广告间隔"字段

aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)
encode_maxrespcode()

如果需要,将mrcode值编码并替换为其IGMPv3编码的时间值,#rqc:E501,如rfc3376#section-4.1.1中所指定.

如果值<128,则返回指定的值. 如果> = 128,则将其编码为浮点数#noqa:E501点值. 值可以是0-31744.

fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      TYPE     |     MRCODE    |             CHKSUM            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. IGMPv3                            
IGMPv3字段

type

ByteEnumField

17

mrcode

ByteField

20

chksum

XShortField

None

igmpv3types = {17: 'Membership Query', 34: 'Version 3 Membership Report', 48: 'Multicast Router Advertisement', 49: 'Multicast Router Solicitation', 50: 'Multicast Router Termination'}
mysummary()

显示IGMPv3对象的摘要.

payload_guess

可能的子层: IGMPv3mqIGMPv3mrIGMPv3mra

class scapy.contrib.igmpv3.IGMPv3gr(*args, **kargs)

Bases: scapy.packet.Packet

IGMPv3成员资格报告的IGMP组记录

该类派生自Packet类,并且应添加到IGMPv3mr类的实例化记录中.

aliastypes
default_payload_class(payload)
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     RTYPE     |    AUXDLEN    |             NUMSRC            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             MADDR                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SRCADDRS           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. IGMPv3gr                           
IGMPv3gr字段

rtype

ByteEnumField

1

auxdlen

ByteField

0

numsrc

FieldLenField

None

maddr

IPField

'0.0.0.0'

srcaddrs

FieldListField

[]

igmpv3grtypes = {1: 'Mode Is Include', 2: 'Mode Is Exclude', 3: 'Change To Include Mode', 4: 'Change To Exclude Mode', 5: 'Allow New Sources', 6: 'Block Old Sources'}
mysummary()

显示IGMPv3组记录的摘要.

class scapy.contrib.igmpv3.IGMPv3mq(*args, **kargs)

Bases: scapy.packet.Packet

IGMPv3成员资格查询. 当类型= 0x11时IGMPv3的有效载荷

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             GADDR                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  RESV |S| QRV |      QQIC     |             NUMSRC            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SRCADDRS           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. IGMPv3mq                           
IGMPv3mq字段

gaddr

IPField

'0.0.0.0'

resv

BitField (4位)

0

s

BitField (1位)

0

qrv

BitField (3位)

0

qqic

ByteField

0

numsrc

FieldLenField

None

srcaddrs

FieldListField

[]

class scapy.contrib.igmpv3.IGMPv3mr(*args, **kargs)

Bases: scapy.packet.Packet

IGMPv3的IGMP成员资格报告扩展. 当类型= 0x22时IGMPv3的有效载荷

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              RES2             |             NUMGRP            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            RECORDS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. IGMPv3mr                           
IGMPv3mr字段

res2

XShortField

0

numgrp

FieldLenField

None

records

PacketListField

[]

class scapy.contrib.igmpv3.IGMPv3mra(*args, **kargs)

Bases: scapy.packet.Packet

IGMPv3的IGMP组播路由器广告扩展. 当类型= 0x30时IGMPv3的有效载荷

aliastypes
fields_desc
显示类似RFC的架构
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            QRYINTVL           |             ROBUST            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. IGMPv3mra                          
IGMPv3mra字段

qryIntvl

ShortField

0

robust

ShortField

0