scapy.contrib.mqtt

class scapy.contrib.mqtt.MQTT

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  TYPE |D|QOS|R|              LEN              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. MQTT                             
MQTT栏位

type

BitEnumField (4位)

1

DUP

BitEnumField (1位)

0

QOS

BitEnumField (2位)

0

RETAIN

BitEnumField (1位)

0

len

VariableFieldLenField

None

payload_guess

可能的子层: MQTTConnackMQTTConnectMQTTPubackMQTTPubcompMQTTPublishMQTTPubrecMQTTPubrelMQTTSubackMQTTSubscribeMQTTUnsubackMQTTUnsubscribe

class scapy.contrib.mqtt.MQTTConnack

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|SESSPRESENTFLAG|    RETCODE    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTConnack                         
MQTTConnack字段

sessPresentFlag

ByteField

0

retcode

ByteEnumField

0

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTConnect

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             LENGTH            |           PROTONAME           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   PROTOLEVEL  |U|P|W|WIL|W|C|R|             KLIVE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          CLIENTIDLEN          |            CLIENTID           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            WTOPLEN            |           WILLTOPIC           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            WMSGLEN            |            WILLMSG            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            USERLEN            |            USERNAME           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            PASSLEN            |            PASSWORD           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTConnect                         
MQTTConnect字段

length

FieldLenField

None

protoname

StrLenField

b''

protolevel

ByteEnumField

5

usernameflag

BitEnumField (1位)

0

passwordflag

BitEnumField (1位)

0

willretainflag

BitEnumField (1位)

0

willQOSflag

BitEnumField (2位)

0

willflag

BitEnumField (1位)

0

cleansess

BitEnumField (1位)

0

reserved

BitEnumField (1位)

0

klive

ShortField

0

clientIdlen

FieldLenField

None

clientId

StrLenField

b''

wtoplen

FieldLenField (Cond)

None

willtopic

StrLenField (Cond)

b''

wmsglen

FieldLenField (Cond)

None

willmsg

StrLenField (Cond)

b''

userlen

FieldLenField (Cond)

None

username

StrLenField (Cond)

b''

passlen

FieldLenField (Cond)

None

password

StrLenField (Cond)

b''

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTPuback

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTPuback                          
MQTTPuback字段

msgid

ShortField

None

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTPubcomp

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTPubcomp                         
MQTTPubcomp字段

msgid

ShortField

None

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTPublish

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             LENGTH            |             TOPIC             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTPublish                         
MQTTPublish字段

length

FieldLenField

None

topic

StrLenField

b''

msgid

ShortField (Cond)

None

value

StrLenField

b''

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTPubrec

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTPubrec                          
MQTTPubrec字段

msgid

ShortField

None

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTPubrel

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTPubrel                          
MQTTPubrel字段

msgid

ShortField

None

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTSuback

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |    RETCODE    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTSuback                          
MQTTSuback字段

msgid

ShortField

None

retcode

ByteEnumField

None

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTSubscribe

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             TOPIC             |      QOS      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. MQTTSubscribe                        
MQTTSubscribe字段

msgid

ShortField

None

length

FieldLenField

None

topic

StrLenField

b''

QOS

ByteEnumField

0

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTTopic

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |             TOPIC             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. MQTTTopic                          
MQTTTopic字段

len

FieldLenField

None

topic

StrLenField

b''

guess_payload_class(payload)
class scapy.contrib.mqtt.MQTTUnsuback

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. MQTTUnsuback                         
MQTTUnsuback字段

msgid

ShortField

None

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.MQTTUnsubscribe

Bases: scapy.packet.Packet

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |             TOPICS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. MQTTUnsubscribe                       
MQTT退订字段

msgid

ShortField

None

topics

PacketListField

[]

payload_guess

可能的子层: MQTT

class scapy.contrib.mqtt.RandVariableFieldLen

Bases: scapy.volatile.RandNum

class scapy.contrib.mqtt.VariableFieldLenField(name, default, length_of=None, fmt='H', count_of=None, adjust=<function FieldLenField.<lambda>>, fld=None)

Bases: scapy.fields.FieldLenField

addfield(pkt, s, val)
getfield(pkt, s)
randval()
scapy.contrib.mqtt.cb_topic(pkt, lst, cur, remain)

将其余字节解码为MQTT主题