scapy.contrib.enipTCP

class scapy.contrib.enipTCP.BaseSendPacket(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        INTERFACEHANDLE                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            TIMEOUT            |       ENCAPSULATEDPACKET      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. BaseSendPacket                        
BaseSendPacket字段

interfaceHandle

LEIntField

0

timeout

LEShortField

0

encapsulatedPacket

PacketField

None

class scapy.contrib.enipTCP.CommandSpecificData(*args, **kargs)

Bases: scapy.packet.Packet

命令特定的数据字段默认

aliastypes
class scapy.contrib.enipTCP.ENIPListIdentityReply(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ITEMCOUNT           |         IDENTITYITEMS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. ENIPListIdentityReply                    
ENIPListIdentityReply字段

itemCount

FieldLenField

0

identityItems

PacketField

None

class scapy.contrib.enipTCP.ENIPListIdentityReplyItems(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          ITEMTYPECODE                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ITEMLENGTH          |            ITEMDATA           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Fig. ENIPListIdentityReplyItems                  
ENIPListIdentityReplyItems字段

itemTypeCode

LEIntField

0

itemLength

FieldLenField

0

itemData

StrLenField

b''

class scapy.contrib.enipTCP.ENIPListInterfacesReply(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ITEMCOUNT           |         IDENTITYITEMS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. ENIPListInterfacesReply                   
ENIPListInterfacesReply字段

itemCount

FieldLenField

0

identityItems

PacketField

0

class scapy.contrib.enipTCP.ENIPListInterfacesReplyItems(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          ITEMTYPECODE                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ITEMLENGTH          |            ITEMDATA           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Fig. ENIPListInterfacesReplyItems                 
ENIPListInterfacesReplyItems字段

itemTypeCode

LEIntField

0

itemLength

FieldLenField

0

itemData

StrLenField

b''

class scapy.contrib.enipTCP.ENIPListServicesReply(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ITEMCOUNT           |          TARGETITEMS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. ENIPListServicesReply                    
ENIPListServicesReply字段

itemCount

FieldLenField

0

targetItems

PacketField

None

class scapy.contrib.enipTCP.ENIPListServicesReplyItems(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          ITEMTYPECODE                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           ITEMLENGTH                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    VERSION    |      FLAG     |          SERVICENAME          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Fig. ENIPListServicesReplyItems                  
ENIPListServicesReplyItems字段

itemTypeCode

LEIntField

0

itemLength

LEIntField

0

version

ByteField

1

flag

ByteField

0

serviceName

StrFixedLenField

None

class scapy.contrib.enipTCP.ENIPRegisterSession(*args, **kargs)

Bases: scapy.contrib.enipTCP.CommandSpecificData

注册会话命令字段

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        PROTOCOLVERSION        |            OPTIONS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. ENIPRegisterSession                     
ENIPRegisterSession字段

protocolVersion

LEShortField

1

options

LEShortField

0

class scapy.contrib.enipTCP.ENIPSendRRData(*args, **kargs)

Bases: scapy.contrib.enipTCP.BaseSendPacket

发送RR数据命令字段

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        INTERFACEHANDLE                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            TIMEOUT            |       ENCAPSULATEDPACKET      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. ENIPSendRRData                        
ENIPSendRRData字段

interfaceHandle

LEIntField

0

timeout

LEShortField

0

encapsulatedPacket

PacketField

None

class scapy.contrib.enipTCP.ENIPSendUnitData(*args, **kargs)

Bases: scapy.contrib.enipTCP.BaseSendPacket

发送单位数据命令字段

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        INTERFACEHANDLE                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            TIMEOUT            |       ENCAPSULATEDPACKET      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. ENIPSendUnitData                       
ENIPSendUnitData字段

interfaceHandle

LEIntField

0

timeout

LEShortField

0

encapsulatedPacket

PacketField

None

class scapy.contrib.enipTCP.ENIPTCP(*args, **kargs)

Bases: scapy.packet.Packet

TCP上的以太网/ IP数据包

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           COMMANDID           |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            SESSION                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             STATUS                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         SENDERCONTEXT                         |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            OPTIONS                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      COMMANDSPECIFICDATA      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. ENIPTCP                           
ENIPTCP字段

commandId

LEShortEnumField

None

length

LEShortField

0

session

XLEIntField

0

status

LEIntEnumField

None

senderContext

LELongField

0

options

LEIntField

0

commandSpecificData

MultipleTypeField

None

post_build(pkt, pay)
class scapy.contrib.enipTCP.EncapsulatedPacket(*args, **kargs)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ITEMCOUNT           |              ITEM             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. EncapsulatedPacket                      
EncapsulatedPacket字段

itemCount

LEShortField

2

item

PacketListField

[]

class scapy.contrib.enipTCP.ItemData(*args, **kargs)

Bases: scapy.packet.Packet

通用包格式

aliastypes
extract_padding(s)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             TYPEID            |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              DATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. ItemData                           
ItemData字段

typeId

LEShortEnumField

0

length

LEShortField

0

data

XLEStrLenField

b''