scapy.contrib.enipTCP

EtherNet/IP (Industrial Protocol)

Based on https://github.com/scy-phy/scapy-cip-enip EtherNet/IP Home: www.odva.org

class scapy.contrib.enipTCP.ENIPListIdentity(_pkt, /, *, itemCount=0, items=[])[source]

Bases: Packet

List identity request and response

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPListIdentity'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (ENIPListIdentity).itemCount>, <PacketListField (ENIPListIdentity).items>]
class scapy.contrib.enipTCP.ENIPListIdentityItem(_pkt, /, *, itemTypeCode=0, itemLength=0, protocolVersion=0, sinFamily=0, sinPort=0, sinAddress=None, sinZero=0, vendorId=0, deviceType=0, productCode=0, revisionMajor=0, revisionMinor=0, status=0, serialNumber=0, productNameLength=0, productName=None, state=0)[source]

Bases: Packet

List Identity Item Fields

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPListIdentityItem'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEShortEnumField (ENIPListIdentityItem).itemTypeCode>, <LEFieldLenField (ENIPListIdentityItem).itemLength>, <LEShortField (ENIPListIdentityItem).protocolVersion>, <ShortField (ENIPListIdentityItem).sinFamily>, <ShortField (ENIPListIdentityItem).sinPort>, <IPField (ENIPListIdentityItem).sinAddress>, <LongField (ENIPListIdentityItem).sinZero>, <LEShortField (ENIPListIdentityItem).vendorId>, <LEShortEnumField (ENIPListIdentityItem).deviceType>, <LEShortField (ENIPListIdentityItem).productCode>, <ByteField (ENIPListIdentityItem).revisionMajor>, <ByteField (ENIPListIdentityItem).revisionMinor>, <LEShortField (ENIPListIdentityItem).status>, <XLEIntField (ENIPListIdentityItem).serialNumber>, <ByteField (ENIPListIdentityItem).productNameLength>, <StrLenField (ENIPListIdentityItem).productName>, <ByteField (ENIPListIdentityItem).state>]
class scapy.contrib.enipTCP.ENIPListInterfaces(_pkt, /, *, itemCount=0, items=[])[source]

Bases: Packet

List Interfaces Command Field

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPListInterfaces'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (ENIPListInterfaces).itemCount>, <PacketListField (ENIPListInterfaces).items>]
class scapy.contrib.enipTCP.ENIPListInterfacesItem(_pkt, /, *, itemTypeCode=0, itemLength=0, itemData=b'')[source]

Bases: Packet

List Interfaces Item Fields

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPListInterfacesItem'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEShortEnumField (ENIPListInterfacesItem).itemTypeCode>, <FieldLenField (ENIPListInterfacesItem).itemLength>, <StrLenField (ENIPListInterfacesItem).itemData>]
class scapy.contrib.enipTCP.ENIPListServices(_pkt, /, *, itemCount=0, items=[])[source]

Bases: Packet

List Services Command Field

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPListServices'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (ENIPListServices).itemCount>, <PacketListField (ENIPListServices).items>]
class scapy.contrib.enipTCP.ENIPListServicesItem(_pkt, /, *, itemTypeCode=0, itemLength=0, protocolVersion=0, flag=0, serviceName=None)[source]

Bases: Packet

List Services Item Field

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPListServicesItem'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEShortEnumField (ENIPListServicesItem).itemTypeCode>, <LEFieldLenField (ENIPListServicesItem).itemLength>, <LEShortField (ENIPListServicesItem).protocolVersion>, <XLEShortField (ENIPListServicesItem).flag>, <StrFixedLenField (ENIPListServicesItem).serviceName>]
class scapy.contrib.enipTCP.ENIPRegisterSession(_pkt, /, *, protocolVersion=1, options=0)[source]

Bases: Packet

Register Session Command Field

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPRegisterSession'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEShortField (ENIPRegisterSession).protocolVersion>, <LEShortField (ENIPRegisterSession).options>]
class scapy.contrib.enipTCP.ENIPSendRRData(_pkt, /, *, interface=0, timeout=255, itemCount=0, items=[])[source]

Bases: Packet

Send RR Data Command Field

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPSendRRData'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEIntEnumField (ENIPSendRRData).interface>, <LEShortField (ENIPSendRRData).timeout>, <LEFieldLenField (ENIPSendRRData).itemCount>, <PacketListField (ENIPSendRRData).items>]
class scapy.contrib.enipTCP.ENIPSendUnitData(_pkt, /, *, interface=0, timeout=255, itemCount=0, items=[])[source]

Bases: Packet

Send Unit Data Command Field

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPSendUnitData'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEIntEnumField (ENIPSendUnitData).interface>, <LEShortField (ENIPSendUnitData).timeout>, <LEFieldLenField (ENIPSendUnitData).itemCount>, <PacketListField (ENIPSendUnitData).items>]
class scapy.contrib.enipTCP.ENIPTCP(_pkt, /, *, commandId=None, length=0, session=0, status=None, senderContext=0, options=0)[source]

Bases: Packet

Ethernet/IP packet over TCP

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPTCP'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEShortEnumField (ENIPTCP).commandId>, <LEShortField (ENIPTCP).length>, <XLEIntField (ENIPTCP).session>, <LEIntEnumField (ENIPTCP).status>, <LELongField (ENIPTCP).senderContext>, <LEIntField (ENIPTCP).options>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'commandId': 1}, <class 'scapy.contrib.enipTCP.ENIPUnknownCommand'>), ({'commandId': 4}, <class 'scapy.contrib.enipTCP.ENIPListServices'>), ({'commandId': 99}, <class 'scapy.contrib.enipTCP.ENIPListIdentity'>), ({'commandId': 100}, <class 'scapy.contrib.enipTCP.ENIPListInterfaces'>), ({'commandId': 101}, <class 'scapy.contrib.enipTCP.ENIPRegisterSession'>), ({'commandId': 102}, <class 'scapy.contrib.enipTCP.ENIPUnregisterSession'>), ({'commandId': 111}, <class 'scapy.contrib.enipTCP.ENIPSendRRData'>), ({'commandId': 112}, <class 'scapy.contrib.enipTCP.ENIPSendUnitData'>)]
post_build(pkt, pay)[source]
class scapy.contrib.enipTCP.ENIPUnknownCommand(_pkt, /)[source]

Bases: Packet

Unknown Command reply

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPUnknownCommand'>, <class 'scapy.packet.Packet'>]
class scapy.contrib.enipTCP.ENIPUnregisterSession(_pkt, /)[source]

Bases: Packet

Unregister Session Command Field

aliastypes = [<class 'scapy.contrib.enipTCP.ENIPUnregisterSession'>, <class 'scapy.packet.Packet'>]
class scapy.contrib.enipTCP.ItemData(_pkt, /, *, typeId=0, length=0, data=b'')[source]

Bases: Packet

Common Packet Format

aliastypes = [<class 'scapy.contrib.enipTCP.ItemData'>, <class 'scapy.packet.Packet'>]
extract_padding(s)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEShortEnumField (ItemData).typeId>, <LEShortField (ItemData).length>, <XLEStrLenField (ItemData).data>]