scapy.contrib.knx

KNXNet/IP

This module provides Scapy layers for KNXNet/IP communications over UDP according to KNX specifications v2.1 / ISO-IEC 14543-3. Specifications can be downloaded for free here : https://my.knx.org/en/shop/knx-specifications

Currently, the module (partially) supports the following services : * SEARCH REQUEST/RESPONSE * DESCRIPTION REQUEST/RESPONSE * CONNECT, DISCONNECT, CONNECTION_STATE REQUEST/RESPONSE * CONFIGURATION REQUEST/RESPONSE * TUNNELING REQUEST/RESPONSE

class scapy.contrib.knx.CEMI(_pkt, /, *, message_code=None, cemi_data=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  MESSAGE CODE |           CEMI DATA           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. CEMI                             
CEMI fields

message_code

ByteEnumField

None

cemi_data

MultipleTypeField (PacketField, PacketField, PacketField, PacketField, PacketField, PacketField, PacketField)

<LcEMI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.CRD(_pkt, /, *, structure_length=0, connection_type=3, connection_data=<CRDTunnelingConnection  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|CONNECTION TYPE|        CONNECTION DATA        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. CRD                             
CRD fields

structure_length

ByteField

0

connection_type

ByteEnumField

3

connection_data

PacketField (Cond)

<CRDTunnelingConnection  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.CRDTunnelingConnection(_pkt, /, *, knx_individual_address=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     KNX INDIVIDUAL ADDRESS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. CRDTunnelingConnection                    
CRDTunnelingConnection fields

knx_individual_address

KNXAddressField

None

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.CRI(_pkt, /, *, structure_length=2, connection_type=3, connection_data=<TunnelingConnection  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|CONNECTION TYPE|        CONNECTION DATA        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. CRI                             
CRI fields

structure_length

ByteField

2

connection_type

ByteEnumField

3

connection_data

PacketField (Cond)

<TunnelingConnection  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.DIBDeviceInfo(_pkt, /, *, structure_length=None, description_type=1, knx_medium=2, device_status=None, knx_address=None, project_installation_identifier=None, device_serial_number=None, device_multicast_address=None, device_mac_address=None, device_friendly_name=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|DESCRIPTION TYP|   KNX MEDIUM  | DEVICE STATUS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          KNX ADDRESS          |PROJECT INSTALLATION IDENTIFIER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      DEVICE SERIAL NUMBER                     |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |    DEVICE MULTICAST ADDRESS   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |       DEVICE MAC ADDRESS      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      DEVICE FRIENDLY NAME                     |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. DIBDeviceInfo                        
DIBDeviceInfo fields

structure_length

ByteField

None

description_type

ByteEnumField

1

knx_medium

ByteEnumField

2

device_status

ByteField

None

knx_address

KNXAddressField

None

project_installation_identifier

ShortField

None

device_serial_number

XBitField (48 bits)

None

device_multicast_address

IPField

None

device_mac_address

MACField

None

device_friendly_name

StrFixedLenField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.DIBSuppSvcFamilies(_pkt, /, *, structure_length=2, description_type=2, service_family=[<ServiceFamily  |>])[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|DESCRIPTION TYP|         SERVICE FAMILY        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. DIBSuppSvcFamilies                      
DIBSuppSvcFamilies fields

structure_length

ByteField

2

description_type

ByteEnumField

2

service_family

PacketListField (Cond)

[<ServiceFamily  |>]

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.DPcEMI(_pkt, /, *, object_type=None, object_instance=1, property_id=None, number_of_elements=1, start_index=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          OBJECT TYPE          |OBJECT INSTANCE|  PROPERTY ID  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|NUMBER |      START INDEX      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. DPcEMI                            
DPcEMI fields

object_type

ShortField

None

object_instance

ByteField

1

property_id

ByteField

None

number_of_elements

BitField (4 bits)

1

start_index

BitField (12 bits)

None

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.HPAI(_pkt, /, *, structure_length=None, host_protocol=1, ip_address=None, port=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT| HOST PROTOCOL |           IP ADDRESS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. HPAI                             
HPAI fields

structure_length

ByteField

None

host_protocol

ByteEnumField

1

ip_address

IPField

None

port

ShortField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.KNX(_pkt, /, *, header_length=None, protocol_version=16, service_identifier=None, total_length=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HEADER LENGTH |PROTOCOL VERSIO|       SERVICE IDENTIFIER      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          TOTAL LENGTH         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. KNX                             
KNX fields

header_length

ByteField

None

protocol_version

XByteField

16

service_identifier

ShortEnumField

None

total_length

ShortField

None

payload_guess

Possible sublayers: KNXConfigurationACK, KNXConfigurationRequest, KNXConnectRequest, KNXConnectResponse, KNXConnectionstateRequest, KNXConnectionstateResponse, KNXDescriptionRequest, KNXDescriptionResponse, KNXDisconnectRequest, KNXDisconnectResponse, KNXSearchRequest, KNXSearchResponse, KNXTunnelingACK, KNXTunnelingRequest

post_build(p, pay)[源代码]
class scapy.contrib.knx.KNXAddressField(name: str, default: int | None)[源代码]

基类:ShortField

any2i(pkt, x)[源代码]
i2repr(pkt, x)[源代码]
class scapy.contrib.knx.KNXConfigurationACK(_pkt, /, *, structure_length=None, communication_channel_id=1, sequence_counter=None, status=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. KNXConfigurationACK                     
KNXConfigurationACK fields

structure_length

ByteField

None

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

status

ByteField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.KNXConfigurationRequest(_pkt, /, *, structure_length=4, communication_channel_id=1, sequence_counter=None, reserved=None, cemi=<CEMI  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              CEMI             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. KNXConfigurationRequest                   
KNXConfigurationRequest fields

structure_length

ByteField

4

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

reserved

ByteField

None

cemi

PacketField

<CEMI  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.KNXConnectRequest(_pkt, /, *, control_endpoint=<HPAI  |>, data_endpoint=<HPAI  |>, connection_request_information=<CRI  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        CONTROL ENDPOINT       |         DATA ENDPOINT         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CONNECTION REQUEST INFORMATION|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. KNXConnectRequest                      
KNXConnectRequest fields

control_endpoint

PacketField

<HPAI  |>

data_endpoint

PacketField

<HPAI  |>

connection_request_information

PacketField

<CRI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXConnectResponse(_pkt, /, *, communication_channel_id=None, status=None, data_endpoint=<HPAI  |>, connection_response_data_block=<CRD  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|     STATUS    |         DATA ENDPOINT         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CONNECTION RESPONSE DATA BLOCK|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. KNXConnectResponse                      
KNXConnectResponse fields

communication_channel_id

ByteField

None

status

ByteField

None

data_endpoint

PacketField

<HPAI  |>

connection_response_data_block

PacketField

<CRD  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXConnectionstateRequest(_pkt, /, *, communication_channel_id=None, reserved=None, control_endpoint=<HPAI  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|    RESERVED   |        CONTROL ENDPOINT       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. KNXConnectionstateRequest                  
KNXConnectionstateRequest fields

communication_channel_id

ByteField

None

reserved

ByteField

None

control_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXConnectionstateResponse(_pkt, /, *, communication_channel_id=None, status=0)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Fig. KNXConnectionstateResponse                  
KNXConnectionstateResponse fields

communication_channel_id

ByteField

None

status

ByteField

0

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDescriptionRequest(_pkt, /, *, control_endpoint=<HPAI  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        CONTROL ENDPOINT       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. KNXDescriptionRequest                    
KNXDescriptionRequest fields

control_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDescriptionResponse(_pkt, /, *, device_info=<DIBDeviceInfo  |>, supported_service_families=<DIBSuppSvcFamilies  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          DEVICE INFO          |   SUPPORTED SERVICE FAMILIES  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. KNXDescriptionResponse                    
KNXDescriptionResponse fields

device_info

PacketField

<DIBDeviceInfo  |>

supported_service_families

PacketField

<DIBSuppSvcFamilies  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDisconnectRequest(_pkt, /, *, communication_channel_id=1, reserved=None, control_endpoint=<HPAI  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|    RESERVED   |        CONTROL ENDPOINT       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. KNXDisconnectRequest                     
KNXDisconnectRequest fields

communication_channel_id

ByteField

1

reserved

ByteField

None

control_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDisconnectResponse(_pkt, /, *, communication_channel_id=None, status=0)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. KNXDisconnectResponse                    
KNXDisconnectResponse fields

communication_channel_id

ByteField

None

status

ByteField

0

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXGroupField(name: str, default: int | None)[源代码]

基类:ShortField

any2i(pkt, x)[源代码]
i2repr(pkt, x)[源代码]
class scapy.contrib.knx.KNXSearchRequest(_pkt, /, *, discovery_endpoint=<HPAI  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       DISCOVERY ENDPOINT      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. KNXSearchRequest                       
KNXSearchRequest fields

discovery_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXSearchResponse(_pkt, /, *, control_endpoint=<HPAI  |>, device_info=<DIBDeviceInfo  |>, supported_service_families=<DIBSuppSvcFamilies  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        CONTROL ENDPOINT       |          DEVICE INFO          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   SUPPORTED SERVICE FAMILIES  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. KNXSearchResponse                      
KNXSearchResponse fields

control_endpoint

PacketField

<HPAI  |>

device_info

PacketField

<DIBDeviceInfo  |>

supported_service_families

PacketField

<DIBSuppSvcFamilies  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXTunnelingACK(_pkt, /, *, structure_length=None, communication_channel_id=1, sequence_counter=None, status=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. KNXTunnelingACK                       
KNXTunnelingACK fields

structure_length

ByteField

None

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

status

ByteField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.KNXTunnelingRequest(_pkt, /, *, structure_length=4, communication_channel_id=1, sequence_counter=None, reserved=None, cemi=<CEMI  |>)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              CEMI             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. KNXTunnelingRequest                     
KNXTunnelingRequest fields

structure_length

ByteField

4

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

reserved

ByteField

None

cemi

PacketField

<CEMI  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[源代码]
class scapy.contrib.knx.LcEMI(_pkt, /, *, additional_information_length=0, additional_information=None, frame_type=1, reserved_1=0, repeat_on_error=1, broadcast_type=1, priority=3, ack_request=0, confirmation_error=0, address_type=1, hop_count=6, extended_frame_format=0, source_address=None, destination_address=2563, npdu_length=1, packet_type=0, sequence_type=0, reserved_2=0, acpi=2, data=0)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ADDITIONAL INFO|     ADDITIONAL INFORMATION    |F|R|R|B|PRI|A|C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A|HOP C|EXTENDE|         SOURCE ADDRESS        |DESTINATION ADD|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |  NPDU LENGTH  |P|S|RESERVE|  ACPI |    DATA   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. LcEMI                            
LcEMI fields

additional_information_length

FieldLenField

0

additional_information

StrLenField

None

frame_type

BitEnumField

1

reserved_1

BitField (1 bit)

0

repeat_on_error

BitField (1 bit)

1

broadcast_type

BitEnumField

1

priority

BitEnumField

3

ack_request

BitField (1 bit)

0

confirmation_error

BitField (1 bit)

0

address_type

BitEnumField

1

hop_count

BitField (3 bits)

6

extended_frame_format

BitField (4 bits)

0

source_address

KNXAddressField

None

destination_address

KNXGroupField

2563

npdu_length

FieldLenField

1

packet_type

BitEnumField

0

sequence_type

BitEnumField

0

reserved_2

BitField (4 bits)

0

acpi

BitEnumField

2

data

BitField (6 bits)

0

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.ServiceFamily(_pkt, /, *, id=None, version=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       ID      |    VERSION    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. ServiceFamily                        
ServiceFamily fields

id

ByteField

None

version

ByteField

None

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.TunnelingConnection(_pkt, /, *, knx_layer=2, reserved=None)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   KNX LAYER   |    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. TunnelingConnection                     
TunnelingConnection fields

knx_layer

ByteField

2

reserved

ByteField

None

payload_guess

Possible sublayers: Padding