pypcapkit 1.3.3.post1__cp313-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pcapkit/__init__.py +126 -0
- pcapkit/__main__.py +138 -0
- pcapkit/all.py +136 -0
- pcapkit/const/__init__.py +81 -0
- pcapkit/const/arp/__init__.py +25 -0
- pcapkit/const/arp/hardware.py +181 -0
- pcapkit/const/arp/operation.py +131 -0
- pcapkit/const/ftp/__init__.py +25 -0
- pcapkit/const/ftp/command.py +309 -0
- pcapkit/const/ftp/return_code.py +304 -0
- pcapkit/const/hip/__init__.py +94 -0
- pcapkit/const/hip/certificate.py +77 -0
- pcapkit/const/hip/cipher.py +65 -0
- pcapkit/const/hip/di.py +59 -0
- pcapkit/const/hip/ecdsa_curve.py +59 -0
- pcapkit/const/hip/ecdsa_low_curve.py +56 -0
- pcapkit/const/hip/eddsa_curve.py +65 -0
- pcapkit/const/hip/esp_transform_suite.py +98 -0
- pcapkit/const/hip/group.py +86 -0
- pcapkit/const/hip/hi_algorithm.py +86 -0
- pcapkit/const/hip/hit_suite.py +68 -0
- pcapkit/const/hip/nat_traversal.py +62 -0
- pcapkit/const/hip/notify_message.py +200 -0
- pcapkit/const/hip/packet.py +89 -0
- pcapkit/const/hip/parameter.py +377 -0
- pcapkit/const/hip/registration.py +68 -0
- pcapkit/const/hip/registration_failure.py +84 -0
- pcapkit/const/hip/suite.py +71 -0
- pcapkit/const/hip/transport.py +59 -0
- pcapkit/const/http/__init__.py +39 -0
- pcapkit/const/http/error_code.py +95 -0
- pcapkit/const/http/frame.py +95 -0
- pcapkit/const/http/method.py +184 -0
- pcapkit/const/http/setting.py +96 -0
- pcapkit/const/http/status_code.py +294 -0
- pcapkit/const/ipv4/__init__.py +57 -0
- pcapkit/const/ipv4/classification_level.py +64 -0
- pcapkit/const/ipv4/option_class.py +55 -0
- pcapkit/const/ipv4/option_number.py +137 -0
- pcapkit/const/ipv4/protection_authority.py +63 -0
- pcapkit/const/ipv4/qs_function.py +51 -0
- pcapkit/const/ipv4/router_alert.py +251 -0
- pcapkit/const/ipv4/tos_del.py +51 -0
- pcapkit/const/ipv4/tos_ecn.py +55 -0
- pcapkit/const/ipv4/tos_pre.py +63 -0
- pcapkit/const/ipv4/tos_rel.py +51 -0
- pcapkit/const/ipv4/tos_thr.py +51 -0
- pcapkit/const/ipv4/ts_flag.py +53 -0
- pcapkit/const/ipv6/__init__.py +53 -0
- pcapkit/const/ipv6/extension_header.py +66 -0
- pcapkit/const/ipv6/option.py +137 -0
- pcapkit/const/ipv6/option_action.py +55 -0
- pcapkit/const/ipv6/qs_function.py +51 -0
- pcapkit/const/ipv6/router_alert.py +266 -0
- pcapkit/const/ipv6/routing.py +80 -0
- pcapkit/const/ipv6/seed_id.py +55 -0
- pcapkit/const/ipv6/smf_dpd_mode.py +51 -0
- pcapkit/const/ipv6/tagger_id.py +62 -0
- pcapkit/const/ipx/__init__.py +27 -0
- pcapkit/const/ipx/packet.py +72 -0
- pcapkit/const/ipx/socket.py +104 -0
- pcapkit/const/l2tp/__init__.py +21 -0
- pcapkit/const/l2tp/type.py +51 -0
- pcapkit/const/mh/__init__.py +204 -0
- pcapkit/const/mh/access_type.py +92 -0
- pcapkit/const/mh/ack_status_code.py +71 -0
- pcapkit/const/mh/ani_suboption.py +74 -0
- pcapkit/const/mh/auth_subtype.py +53 -0
- pcapkit/const/mh/binding_ack_flag.py +66 -0
- pcapkit/const/mh/binding_error.py +51 -0
- pcapkit/const/mh/binding_revocation.py +59 -0
- pcapkit/const/mh/binding_update_flag.py +81 -0
- pcapkit/const/mh/cga_extension.py +66 -0
- pcapkit/const/mh/cga_sec.py +57 -0
- pcapkit/const/mh/cga_type.py +68 -0
- pcapkit/const/mh/dhcp_support_mode.py +53 -0
- pcapkit/const/mh/dns_status_code.py +65 -0
- pcapkit/const/mh/dsmip6_tls_packet.py +62 -0
- pcapkit/const/mh/dsmipv6_home_address.py +74 -0
- pcapkit/const/mh/enumerating_algorithm.py +56 -0
- pcapkit/const/mh/fb_ack_status.py +62 -0
- pcapkit/const/mh/fb_action.py +71 -0
- pcapkit/const/mh/fb_indication_trigger.py +65 -0
- pcapkit/const/mh/fb_type.py +59 -0
- pcapkit/const/mh/flow_id_status.py +77 -0
- pcapkit/const/mh/flow_id_suboption.py +71 -0
- pcapkit/const/mh/handoff_type.py +71 -0
- pcapkit/const/mh/handover_ack_flag.py +54 -0
- pcapkit/const/mh/handover_ack_status.py +92 -0
- pcapkit/const/mh/handover_initiate_flag.py +57 -0
- pcapkit/const/mh/handover_initiate_status.py +62 -0
- pcapkit/const/mh/home_address_reply.py +71 -0
- pcapkit/const/mh/lla_code.py +63 -0
- pcapkit/const/mh/lma_mag_suboption.py +59 -0
- pcapkit/const/mh/mn_group_id.py +59 -0
- pcapkit/const/mh/mn_id_subtype.py +77 -0
- pcapkit/const/mh/operator_id.py +63 -0
- pcapkit/const/mh/option.py +260 -0
- pcapkit/const/mh/packet.py +119 -0
- pcapkit/const/mh/qos_attribute.py +89 -0
- pcapkit/const/mh/revocation_status_code.py +83 -0
- pcapkit/const/mh/revocation_trigger.py +86 -0
- pcapkit/const/mh/status_code.py +232 -0
- pcapkit/const/mh/traffic_selector.py +62 -0
- pcapkit/const/mh/upa_status.py +71 -0
- pcapkit/const/mh/upn_reason.py +80 -0
- pcapkit/const/ospf/__init__.py +27 -0
- pcapkit/const/ospf/authentication.py +65 -0
- pcapkit/const/ospf/packet.py +71 -0
- pcapkit/const/pcapng/__init__.py +51 -0
- pcapkit/const/pcapng/block_type.py +152 -0
- pcapkit/const/pcapng/filter_type.py +48 -0
- pcapkit/const/pcapng/hash_algorithm.py +59 -0
- pcapkit/const/pcapng/option_type.py +233 -0
- pcapkit/const/pcapng/record_type.py +57 -0
- pcapkit/const/pcapng/secrets_type.py +56 -0
- pcapkit/const/pcapng/verdict_type.py +53 -0
- pcapkit/const/reg/__init__.py +34 -0
- pcapkit/const/reg/apptype.py +32702 -0
- pcapkit/const/reg/ethertype.py +714 -0
- pcapkit/const/reg/linktype.py +902 -0
- pcapkit/const/reg/transtype.py +523 -0
- pcapkit/const/tcp/__init__.py +35 -0
- pcapkit/const/tcp/checksum.py +55 -0
- pcapkit/const/tcp/flags.py +73 -0
- pcapkit/const/tcp/mp_tcp_option.py +80 -0
- pcapkit/const/tcp/option.py +198 -0
- pcapkit/const/vlan/__init__.py +23 -0
- pcapkit/const/vlan/priority_level.py +71 -0
- pcapkit/corekit/__init__.py +59 -0
- pcapkit/corekit/fields/__init__.py +45 -0
- pcapkit/corekit/fields/collections.py +282 -0
- pcapkit/corekit/fields/field.py +269 -0
- pcapkit/corekit/fields/ipaddress.py +274 -0
- pcapkit/corekit/fields/misc.py +722 -0
- pcapkit/corekit/fields/numbers.py +375 -0
- pcapkit/corekit/fields/strings.py +245 -0
- pcapkit/corekit/infoclass.py +394 -0
- pcapkit/corekit/io.py +506 -0
- pcapkit/corekit/module.py +39 -0
- pcapkit/corekit/multidict.py +626 -0
- pcapkit/corekit/protochain.py +263 -0
- pcapkit/corekit/version.py +33 -0
- pcapkit/dumpkit/__init__.py +15 -0
- pcapkit/dumpkit/common.py +199 -0
- pcapkit/dumpkit/null.py +77 -0
- pcapkit/dumpkit/pcap.py +144 -0
- pcapkit/foundation/__init__.py +45 -0
- pcapkit/foundation/engines/__init__.py +36 -0
- pcapkit/foundation/engines/dpkt.py +230 -0
- pcapkit/foundation/engines/engine.py +194 -0
- pcapkit/foundation/engines/pcap.py +188 -0
- pcapkit/foundation/engines/pcapng.py +310 -0
- pcapkit/foundation/engines/pyshark.py +166 -0
- pcapkit/foundation/engines/scapy.py +161 -0
- pcapkit/foundation/extraction.py +915 -0
- pcapkit/foundation/reassembly/__init__.py +49 -0
- pcapkit/foundation/reassembly/data/__init__.py +48 -0
- pcapkit/foundation/reassembly/data/ip.py +117 -0
- pcapkit/foundation/reassembly/data/tcp.py +145 -0
- pcapkit/foundation/reassembly/ip.py +192 -0
- pcapkit/foundation/reassembly/ipv4.py +50 -0
- pcapkit/foundation/reassembly/ipv6.py +50 -0
- pcapkit/foundation/reassembly/reassembly.py +389 -0
- pcapkit/foundation/reassembly/tcp.py +249 -0
- pcapkit/foundation/registry/__init__.py +41 -0
- pcapkit/foundation/registry/foundation.py +327 -0
- pcapkit/foundation/registry/protocols.py +885 -0
- pcapkit/foundation/traceflow/__init__.py +44 -0
- pcapkit/foundation/traceflow/data/__init__.py +30 -0
- pcapkit/foundation/traceflow/data/tcp.py +105 -0
- pcapkit/foundation/traceflow/tcp.py +159 -0
- pcapkit/foundation/traceflow/traceflow.py +390 -0
- pcapkit/interface/__init__.py +22 -0
- pcapkit/interface/core.py +185 -0
- pcapkit/interface/misc.py +120 -0
- pcapkit/protocols/__init__.py +85 -0
- pcapkit/protocols/application/NotImplemented/bgp.py +0 -0
- pcapkit/protocols/application/NotImplemented/dhcp.py +0 -0
- pcapkit/protocols/application/NotImplemented/dhcpv6.py +0 -0
- pcapkit/protocols/application/NotImplemented/dns.py +0 -0
- pcapkit/protocols/application/NotImplemented/imap.py +0 -0
- pcapkit/protocols/application/NotImplemented/ldap.py +0 -0
- pcapkit/protocols/application/NotImplemented/mqtt.py +0 -0
- pcapkit/protocols/application/NotImplemented/nntp.py +0 -0
- pcapkit/protocols/application/NotImplemented/ntp.py +0 -0
- pcapkit/protocols/application/NotImplemented/onc_rpc.py +0 -0
- pcapkit/protocols/application/NotImplemented/pop.py +0 -0
- pcapkit/protocols/application/NotImplemented/rip.py +0 -0
- pcapkit/protocols/application/NotImplemented/rtp.py +0 -0
- pcapkit/protocols/application/NotImplemented/sip.py +0 -0
- pcapkit/protocols/application/NotImplemented/smtp.py +0 -0
- pcapkit/protocols/application/NotImplemented/snmp.py +0 -0
- pcapkit/protocols/application/NotImplemented/ssh.py +0 -0
- pcapkit/protocols/application/NotImplemented/telnet.py +0 -0
- pcapkit/protocols/application/NotImplemented/tls.py +0 -0
- pcapkit/protocols/application/NotImplemented/xmpp.py +0 -0
- pcapkit/protocols/application/__init__.py +34 -0
- pcapkit/protocols/application/application.py +114 -0
- pcapkit/protocols/application/ftp.py +206 -0
- pcapkit/protocols/application/http.py +176 -0
- pcapkit/protocols/application/httpv1.py +320 -0
- pcapkit/protocols/application/httpv2.py +1255 -0
- pcapkit/protocols/data/__init__.py +192 -0
- pcapkit/protocols/data/application/__init__.py +57 -0
- pcapkit/protocols/data/application/ftp.py +59 -0
- pcapkit/protocols/data/application/httpv1.py +79 -0
- pcapkit/protocols/data/application/httpv2.py +293 -0
- pcapkit/protocols/data/data.py +25 -0
- pcapkit/protocols/data/internet/__init__.py +298 -0
- pcapkit/protocols/data/internet/ah.py +31 -0
- pcapkit/protocols/data/internet/hip.py +804 -0
- pcapkit/protocols/data/internet/hopopt.py +351 -0
- pcapkit/protocols/data/internet/ipv4.py +369 -0
- pcapkit/protocols/data/internet/ipv6.py +67 -0
- pcapkit/protocols/data/internet/ipv6_frag.py +29 -0
- pcapkit/protocols/data/internet/ipv6_opts.py +368 -0
- pcapkit/protocols/data/internet/ipv6_route.py +86 -0
- pcapkit/protocols/data/internet/ipx.py +56 -0
- pcapkit/protocols/data/internet/mh.py +509 -0
- pcapkit/protocols/data/link/__init__.py +33 -0
- pcapkit/protocols/data/link/arp.py +74 -0
- pcapkit/protocols/data/link/ethernet.py +28 -0
- pcapkit/protocols/data/link/l2tp.py +63 -0
- pcapkit/protocols/data/link/ospf.py +58 -0
- pcapkit/protocols/data/link/vlan.py +42 -0
- pcapkit/protocols/data/misc/__init__.py +109 -0
- pcapkit/protocols/data/misc/null.py +18 -0
- pcapkit/protocols/data/misc/pcap/__init__.py +18 -0
- pcapkit/protocols/data/misc/pcap/frame.py +56 -0
- pcapkit/protocols/data/misc/pcap/header.py +53 -0
- pcapkit/protocols/data/misc/pcapng.py +925 -0
- pcapkit/protocols/data/misc/raw.py +25 -0
- pcapkit/protocols/data/protocol.py +32 -0
- pcapkit/protocols/data/transport/__init__.py +71 -0
- pcapkit/protocols/data/transport/tcp.py +555 -0
- pcapkit/protocols/data/transport/udp.py +29 -0
- pcapkit/protocols/internet/NotImplemented/ecn.py +0 -0
- pcapkit/protocols/internet/NotImplemented/esp.py +97 -0
- pcapkit/protocols/internet/NotImplemented/icmp.py +0 -0
- pcapkit/protocols/internet/NotImplemented/icmpv6.py +0 -0
- pcapkit/protocols/internet/NotImplemented/igmp.py +0 -0
- pcapkit/protocols/internet/NotImplemented/shim6.py +0 -0
- pcapkit/protocols/internet/__init__.py +43 -0
- pcapkit/protocols/internet/ah.py +275 -0
- pcapkit/protocols/internet/hip.py +4727 -0
- pcapkit/protocols/internet/hopopt.py +1879 -0
- pcapkit/protocols/internet/internet.py +240 -0
- pcapkit/protocols/internet/ip.py +51 -0
- pcapkit/protocols/internet/ipsec.py +50 -0
- pcapkit/protocols/internet/ipv4.py +1782 -0
- pcapkit/protocols/internet/ipv6.py +361 -0
- pcapkit/protocols/internet/ipv6_frag.py +258 -0
- pcapkit/protocols/internet/ipv6_opts.py +1890 -0
- pcapkit/protocols/internet/ipv6_route.py +710 -0
- pcapkit/protocols/internet/ipx.py +230 -0
- pcapkit/protocols/internet/mh.py +2764 -0
- pcapkit/protocols/link/NotImplemented/dsl.py +0 -0
- pcapkit/protocols/link/NotImplemented/eapol.py +1 -0
- pcapkit/protocols/link/NotImplemented/fddi.py +0 -0
- pcapkit/protocols/link/NotImplemented/isdn.py +0 -0
- pcapkit/protocols/link/NotImplemented/ndp.py +0 -0
- pcapkit/protocols/link/NotImplemented/ppp.py +0 -0
- pcapkit/protocols/link/__init__.py +35 -0
- pcapkit/protocols/link/arp.py +421 -0
- pcapkit/protocols/link/ethernet.py +248 -0
- pcapkit/protocols/link/l2tp.py +267 -0
- pcapkit/protocols/link/link.py +140 -0
- pcapkit/protocols/link/ospf.py +342 -0
- pcapkit/protocols/link/rarp.py +82 -0
- pcapkit/protocols/link/vlan.py +225 -0
- pcapkit/protocols/misc/__init__.py +37 -0
- pcapkit/protocols/misc/null.py +129 -0
- pcapkit/protocols/misc/pcap/__init__.py +17 -0
- pcapkit/protocols/misc/pcap/frame.py +478 -0
- pcapkit/protocols/misc/pcap/header.py +358 -0
- pcapkit/protocols/misc/pcapng.py +5520 -0
- pcapkit/protocols/misc/raw.py +180 -0
- pcapkit/protocols/protocol.py +1216 -0
- pcapkit/protocols/schema/__init__.py +140 -0
- pcapkit/protocols/schema/application/__init__.py +40 -0
- pcapkit/protocols/schema/application/ftp.py +21 -0
- pcapkit/protocols/schema/application/httpv1.py +21 -0
- pcapkit/protocols/schema/application/httpv2.py +384 -0
- pcapkit/protocols/schema/internet/__init__.py +294 -0
- pcapkit/protocols/schema/internet/ah.py +40 -0
- pcapkit/protocols/schema/internet/hip.py +1184 -0
- pcapkit/protocols/schema/internet/hopopt.py +679 -0
- pcapkit/protocols/schema/internet/ipv4.py +576 -0
- pcapkit/protocols/schema/internet/ipv6.py +63 -0
- pcapkit/protocols/schema/internet/ipv6_frag.py +48 -0
- pcapkit/protocols/schema/internet/ipv6_opts.py +680 -0
- pcapkit/protocols/schema/internet/ipv6_route.py +198 -0
- pcapkit/protocols/schema/internet/ipx.py +40 -0
- pcapkit/protocols/schema/internet/mh.py +718 -0
- pcapkit/protocols/schema/link/__init__.py +19 -0
- pcapkit/protocols/schema/link/arp.py +39 -0
- pcapkit/protocols/schema/link/ethernet.py +51 -0
- pcapkit/protocols/schema/link/l2tp.py +88 -0
- pcapkit/protocols/schema/link/ospf.py +90 -0
- pcapkit/protocols/schema/link/vlan.py +69 -0
- pcapkit/protocols/schema/misc/__init__.py +108 -0
- pcapkit/protocols/schema/misc/null.py +18 -0
- pcapkit/protocols/schema/misc/pcap/__init__.py +10 -0
- pcapkit/protocols/schema/misc/pcap/frame.py +51 -0
- pcapkit/protocols/schema/misc/pcap/header.py +63 -0
- pcapkit/protocols/schema/misc/pcapng.py +1689 -0
- pcapkit/protocols/schema/misc/raw.py +24 -0
- pcapkit/protocols/schema/schema.py +809 -0
- pcapkit/protocols/schema/transport/__init__.py +69 -0
- pcapkit/protocols/schema/transport/tcp.py +928 -0
- pcapkit/protocols/schema/transport/udp.py +90 -0
- pcapkit/protocols/transport/NotImplemented/dccp.py +0 -0
- pcapkit/protocols/transport/NotImplemented/rsvp.py +0 -0
- pcapkit/protocols/transport/NotImplemented/sctp.py +0 -0
- pcapkit/protocols/transport/__init__.py +27 -0
- pcapkit/protocols/transport/tcp.py +3025 -0
- pcapkit/protocols/transport/transport.py +158 -0
- pcapkit/protocols/transport/udp.py +214 -0
- pcapkit/py.typed +0 -0
- pcapkit/toolkit/__init__.py +57 -0
- pcapkit/toolkit/dpkt.py +306 -0
- pcapkit/toolkit/pcap.py +212 -0
- pcapkit/toolkit/pcapng.py +251 -0
- pcapkit/toolkit/pyshark.py +99 -0
- pcapkit/toolkit/scapy.py +297 -0
- pcapkit/utilities/__init__.py +20 -0
- pcapkit/utilities/compat.py +196 -0
- pcapkit/utilities/decorators.py +192 -0
- pcapkit/utilities/exceptions.py +365 -0
- pcapkit/utilities/logging.py +55 -0
- pcapkit/utilities/warnings.py +185 -0
- pcapkit/vendor/__init__.py +105 -0
- pcapkit/vendor/__main__.py +92 -0
- pcapkit/vendor/arp/__init__.py +27 -0
- pcapkit/vendor/arp/hardware.py +29 -0
- pcapkit/vendor/arp/operation.py +29 -0
- pcapkit/vendor/default.py +474 -0
- pcapkit/vendor/ftp/__init__.py +27 -0
- pcapkit/vendor/ftp/command.py +244 -0
- pcapkit/vendor/ftp/return_code.py +256 -0
- pcapkit/vendor/hip/__init__.py +94 -0
- pcapkit/vendor/hip/certificate.py +29 -0
- pcapkit/vendor/hip/cipher.py +29 -0
- pcapkit/vendor/hip/di.py +29 -0
- pcapkit/vendor/hip/ecdsa_curve.py +29 -0
- pcapkit/vendor/hip/ecdsa_low_curve.py +29 -0
- pcapkit/vendor/hip/eddsa_curve.py +85 -0
- pcapkit/vendor/hip/esp_transform_suite.py +29 -0
- pcapkit/vendor/hip/group.py +87 -0
- pcapkit/vendor/hip/hi_algorithm.py +29 -0
- pcapkit/vendor/hip/hit_suite.py +29 -0
- pcapkit/vendor/hip/nat_traversal.py +29 -0
- pcapkit/vendor/hip/notify_message.py +29 -0
- pcapkit/vendor/hip/packet.py +88 -0
- pcapkit/vendor/hip/parameter.py +88 -0
- pcapkit/vendor/hip/registration.py +29 -0
- pcapkit/vendor/hip/registration_failure.py +29 -0
- pcapkit/vendor/hip/suite.py +29 -0
- pcapkit/vendor/hip/transport.py +29 -0
- pcapkit/vendor/http/__init__.py +39 -0
- pcapkit/vendor/http/error_code.py +95 -0
- pcapkit/vendor/http/frame.py +91 -0
- pcapkit/vendor/http/method.py +167 -0
- pcapkit/vendor/http/setting.py +93 -0
- pcapkit/vendor/http/status_code.py +185 -0
- pcapkit/vendor/ipv4/__init__.py +57 -0
- pcapkit/vendor/ipv4/classification_level.py +91 -0
- pcapkit/vendor/ipv4/option_class.py +80 -0
- pcapkit/vendor/ipv4/option_number.py +105 -0
- pcapkit/vendor/ipv4/protection_authority.py +84 -0
- pcapkit/vendor/ipv4/qs_function.py +78 -0
- pcapkit/vendor/ipv4/router_alert.py +93 -0
- pcapkit/vendor/ipv4/tos_del.py +78 -0
- pcapkit/vendor/ipv4/tos_ecn.py +95 -0
- pcapkit/vendor/ipv4/tos_pre.py +84 -0
- pcapkit/vendor/ipv4/tos_rel.py +78 -0
- pcapkit/vendor/ipv4/tos_thr.py +77 -0
- pcapkit/vendor/ipv4/ts_flag.py +79 -0
- pcapkit/vendor/ipv6/__init__.py +53 -0
- pcapkit/vendor/ipv6/extension_header.py +171 -0
- pcapkit/vendor/ipv6/option.py +104 -0
- pcapkit/vendor/ipv6/option_action.py +90 -0
- pcapkit/vendor/ipv6/qs_function.py +78 -0
- pcapkit/vendor/ipv6/router_alert.py +93 -0
- pcapkit/vendor/ipv6/routing.py +87 -0
- pcapkit/vendor/ipv6/seed_id.py +81 -0
- pcapkit/vendor/ipv6/smf_dpd_mode.py +78 -0
- pcapkit/vendor/ipv6/tagger_id.py +81 -0
- pcapkit/vendor/ipx/__init__.py +37 -0
- pcapkit/vendor/ipx/packet.py +123 -0
- pcapkit/vendor/ipx/socket.py +125 -0
- pcapkit/vendor/l2tp/__init__.py +21 -0
- pcapkit/vendor/l2tp/type.py +78 -0
- pcapkit/vendor/mh/__init__.py +204 -0
- pcapkit/vendor/mh/access_type.py +87 -0
- pcapkit/vendor/mh/ack_status_code.py +88 -0
- pcapkit/vendor/mh/ani_suboption.py +88 -0
- pcapkit/vendor/mh/auth_subtype.py +83 -0
- pcapkit/vendor/mh/binding_ack_flag.py +148 -0
- pcapkit/vendor/mh/binding_error.py +78 -0
- pcapkit/vendor/mh/binding_revocation.py +87 -0
- pcapkit/vendor/mh/binding_update_flag.py +147 -0
- pcapkit/vendor/mh/cga_extension.py +91 -0
- pcapkit/vendor/mh/cga_sec.py +91 -0
- pcapkit/vendor/mh/cga_type.py +74 -0
- pcapkit/vendor/mh/dhcp_support_mode.py +77 -0
- pcapkit/vendor/mh/dns_status_code.py +87 -0
- pcapkit/vendor/mh/dsmip6_tls_packet.py +87 -0
- pcapkit/vendor/mh/dsmipv6_home_address.py +87 -0
- pcapkit/vendor/mh/enumerating_algorithm.py +82 -0
- pcapkit/vendor/mh/fb_ack_status.py +87 -0
- pcapkit/vendor/mh/fb_action.py +88 -0
- pcapkit/vendor/mh/fb_indication_trigger.py +87 -0
- pcapkit/vendor/mh/fb_type.py +88 -0
- pcapkit/vendor/mh/flow_id_status.py +87 -0
- pcapkit/vendor/mh/flow_id_suboption.py +87 -0
- pcapkit/vendor/mh/handoff_type.py +87 -0
- pcapkit/vendor/mh/handover_ack_flag.py +143 -0
- pcapkit/vendor/mh/handover_ack_status.py +87 -0
- pcapkit/vendor/mh/handover_initiate_flag.py +143 -0
- pcapkit/vendor/mh/handover_initiate_status.py +87 -0
- pcapkit/vendor/mh/home_address_reply.py +87 -0
- pcapkit/vendor/mh/lla_code.py +97 -0
- pcapkit/vendor/mh/lma_mag_suboption.py +88 -0
- pcapkit/vendor/mh/mn_group_id.py +87 -0
- pcapkit/vendor/mh/mn_id_subtype.py +87 -0
- pcapkit/vendor/mh/operator_id.py +87 -0
- pcapkit/vendor/mh/option.py +83 -0
- pcapkit/vendor/mh/packet.py +82 -0
- pcapkit/vendor/mh/qos_attribute.py +87 -0
- pcapkit/vendor/mh/revocation_status_code.py +87 -0
- pcapkit/vendor/mh/revocation_trigger.py +87 -0
- pcapkit/vendor/mh/status_code.py +91 -0
- pcapkit/vendor/mh/traffic_selector.py +87 -0
- pcapkit/vendor/mh/upa_status.py +87 -0
- pcapkit/vendor/mh/upn_reason.py +87 -0
- pcapkit/vendor/ospf/__init__.py +27 -0
- pcapkit/vendor/ospf/authentication.py +29 -0
- pcapkit/vendor/ospf/packet.py +29 -0
- pcapkit/vendor/pcapng/__init__.py +51 -0
- pcapkit/vendor/pcapng/block_type.py +94 -0
- pcapkit/vendor/pcapng/filter_type.py +77 -0
- pcapkit/vendor/pcapng/hash_algorithm.py +82 -0
- pcapkit/vendor/pcapng/option_type.py +287 -0
- pcapkit/vendor/pcapng/record_type.py +81 -0
- pcapkit/vendor/pcapng/secrets_type.py +81 -0
- pcapkit/vendor/pcapng/verdict_type.py +79 -0
- pcapkit/vendor/reg/__init__.py +34 -0
- pcapkit/vendor/reg/apptype.py +338 -0
- pcapkit/vendor/reg/ethertype.py +121 -0
- pcapkit/vendor/reg/linktype.py +110 -0
- pcapkit/vendor/reg/transtype.py +111 -0
- pcapkit/vendor/tcp/__init__.py +35 -0
- pcapkit/vendor/tcp/checksum.py +80 -0
- pcapkit/vendor/tcp/flags.py +149 -0
- pcapkit/vendor/tcp/mp_tcp_option.py +90 -0
- pcapkit/vendor/tcp/option.py +103 -0
- pcapkit/vendor/vlan/__init__.py +23 -0
- pcapkit/vendor/vlan/priority_level.py +97 -0
- pypcapkit-1.3.3.post1.dist-info/LICENSE +29 -0
- pypcapkit-1.3.3.post1.dist-info/METADATA +236 -0
- pypcapkit-1.3.3.post1.dist-info/RECORD +466 -0
- pypcapkit-1.3.3.post1.dist-info/WHEEL +5 -0
- pypcapkit-1.3.3.post1.dist-info/entry_points.txt +3 -0
- pypcapkit-1.3.3.post1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,158 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""Base Protocol
|
3
|
+
===================
|
4
|
+
|
5
|
+
.. module:: pcapkit.protocols.transport.transport
|
6
|
+
|
7
|
+
:mod:`pcapkit.protocols.transport.transport` contains
|
8
|
+
:class:`~pcapkit.protocols.transport.transport.Transport`,
|
9
|
+
which is a base class for transport layer protocols, eg.
|
10
|
+
:class:`~pcapkit.protocols.transport.transport.tcp.TCP` and
|
11
|
+
:class:`~pcapkit.protocols.transport.transport.udp.UDP`.
|
12
|
+
|
13
|
+
"""
|
14
|
+
import io
|
15
|
+
from typing import TYPE_CHECKING, Generic
|
16
|
+
|
17
|
+
from pcapkit.corekit.module import ModuleDescriptor
|
18
|
+
from pcapkit.protocols.protocol import _PT, _ST
|
19
|
+
from pcapkit.protocols.protocol import ProtocolBase as Protocol
|
20
|
+
from pcapkit.utilities.exceptions import StructError, UnsupportedCall, stacklevel
|
21
|
+
from pcapkit.utilities.logging import DEVMODE, logger
|
22
|
+
from pcapkit.utilities.warnings import RegistryWarning, warn
|
23
|
+
|
24
|
+
if TYPE_CHECKING:
|
25
|
+
from typing import Any, DefaultDict, Optional, Type
|
26
|
+
|
27
|
+
from typing_extensions import Literal
|
28
|
+
|
29
|
+
__all__ = ['Transport']
|
30
|
+
|
31
|
+
|
32
|
+
class Transport(Protocol[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstract-method
|
33
|
+
"""Abstract base class for transport layer protocol family."""
|
34
|
+
|
35
|
+
if TYPE_CHECKING:
|
36
|
+
#: Protocol index mapping for decoding next layer,
|
37
|
+
#: c.f. :meth:`self._decode_next_layer <pcapkit.protocols.transport.transport.Transport._decode_next_layer>`
|
38
|
+
#: & :meth:`self._import_next_layer <pcapkit.protocols.protocol.Protocol._import_next_layer>`.
|
39
|
+
__proto__: 'DefaultDict[int, ModuleDescriptor[Protocol] | Type[Protocol]]'
|
40
|
+
|
41
|
+
##########################################################################
|
42
|
+
# Defaults.
|
43
|
+
##########################################################################
|
44
|
+
|
45
|
+
#: Layer of protocol.
|
46
|
+
__layer__ = 'Transport' # type: Literal['Transport']
|
47
|
+
|
48
|
+
##########################################################################
|
49
|
+
# Properties.
|
50
|
+
##########################################################################
|
51
|
+
|
52
|
+
# protocol layer
|
53
|
+
@property
|
54
|
+
def layer(self) -> 'Literal["Transport"]':
|
55
|
+
"""Protocol layer."""
|
56
|
+
return self.__layer__
|
57
|
+
|
58
|
+
##########################################################################
|
59
|
+
# Methods.
|
60
|
+
##########################################################################
|
61
|
+
|
62
|
+
@classmethod
|
63
|
+
def register(cls, code: 'int', protocol: 'ModuleDescriptor[Protocol] | Type[Protocol]') -> 'None':
|
64
|
+
"""Register a new protocol class.
|
65
|
+
|
66
|
+
Notes:
|
67
|
+
The full qualified class name of the new protocol class
|
68
|
+
should be as ``{protocol.module}.{protocol.name}``.
|
69
|
+
|
70
|
+
Arguments:
|
71
|
+
code: port number
|
72
|
+
protocol: module name
|
73
|
+
|
74
|
+
Important:
|
75
|
+
This method must be called from a non-abstract class, as the
|
76
|
+
protocol map should be associated directly with specific
|
77
|
+
transport layer protocol type.
|
78
|
+
|
79
|
+
"""
|
80
|
+
if cls is Transport:
|
81
|
+
raise UnsupportedCall(f'{cls.__name__} is an abstract class')
|
82
|
+
|
83
|
+
if isinstance(protocol, ModuleDescriptor):
|
84
|
+
protocol = protocol.klass
|
85
|
+
if not issubclass(protocol, Protocol):
|
86
|
+
raise TypeError(f'protocol must be a Protocol subclass, not {protocol!r}')
|
87
|
+
if code in cls.__proto__:
|
88
|
+
warn(f'port {code} already registered, overwriting', RegistryWarning)
|
89
|
+
cls.__proto__[code] = protocol
|
90
|
+
|
91
|
+
@classmethod
|
92
|
+
def analyze(cls, ports: 'tuple[int, int]', payload: 'bytes', **kwargs: 'Any') -> 'Protocol': # type: ignore[override] # pylint: disable=arguments-renamed
|
93
|
+
"""Analyse packet payload.
|
94
|
+
|
95
|
+
Args:
|
96
|
+
ports: Source & destination port numbers.
|
97
|
+
payload: Packet payload.
|
98
|
+
**kwargs: Arbitrary keyword arguments.
|
99
|
+
|
100
|
+
Returns:
|
101
|
+
Parsed payload as a :class:`~pcapkit.protocols.protocol.Protocol`
|
102
|
+
instance.
|
103
|
+
|
104
|
+
"""
|
105
|
+
if ports[0] in cls.__proto__:
|
106
|
+
protocol = cls.__proto__[ports[0]]
|
107
|
+
else:
|
108
|
+
protocol = cls.__proto__[ports[1]]
|
109
|
+
|
110
|
+
if isinstance(protocol, ModuleDescriptor):
|
111
|
+
protocol = protocol.klass
|
112
|
+
|
113
|
+
payload_io = io.BytesIO(payload)
|
114
|
+
try:
|
115
|
+
report = protocol(payload_io, len(payload), **kwargs) # type: ignore[abstract]
|
116
|
+
except Exception as exc:
|
117
|
+
if isinstance(exc, StructError) and exc.eof: # pylint: disable=no-member
|
118
|
+
from pcapkit.protocols.misc.null import NoPayload as protocol # pylint: disable=import-outside-toplevel # isort:skip
|
119
|
+
else:
|
120
|
+
from pcapkit.protocols.misc.raw import Raw as protocol # pylint: disable=import-outside-toplevel # isort:skip
|
121
|
+
# error = traceback.format_exc(limit=1).strip().rsplit(os.linesep, maxsplit=1)[-1]
|
122
|
+
|
123
|
+
# log error
|
124
|
+
logger.error(str(exc), exc_info=exc, stack_info=DEVMODE, stacklevel=stacklevel())
|
125
|
+
|
126
|
+
report = protocol(payload_io, len(payload), **kwargs) # type: ignore[abstract]
|
127
|
+
return report
|
128
|
+
|
129
|
+
##########################################################################
|
130
|
+
# Utilities.
|
131
|
+
##########################################################################
|
132
|
+
|
133
|
+
def _decode_next_layer(self, dict_: '_PT', ports: 'tuple[int, int]', length: 'Optional[int]' = None, *, # type: ignore[override]
|
134
|
+
packet: 'Optional[dict[str, Any]]' = None) -> '_PT': # pylint: disable=arguments-renamed
|
135
|
+
"""Decode next layer protocol.
|
136
|
+
|
137
|
+
The method will check if the next layer protocol is supported based on
|
138
|
+
the source and destination port numbers. We will use the lower port
|
139
|
+
number from both ports as the primary key to lookup the next layer.
|
140
|
+
|
141
|
+
Arguments:
|
142
|
+
dict_: info buffer
|
143
|
+
ports: source & destination port numbers
|
144
|
+
length: valid (*non-padding*) length
|
145
|
+
packet: packet info (passed from :meth:`self.unpack <pcapkit.protocols.protocol.Protocol.unpack>`)
|
146
|
+
|
147
|
+
Returns:
|
148
|
+
Current protocol with next layer extracted.
|
149
|
+
|
150
|
+
"""
|
151
|
+
sort_port = sorted(ports)
|
152
|
+
if sort_port[0] in self.__proto__:
|
153
|
+
proto = sort_port[0]
|
154
|
+
elif sort_port[1] in self.__proto__:
|
155
|
+
proto = sort_port[1]
|
156
|
+
else:
|
157
|
+
proto = None
|
158
|
+
return super()._decode_next_layer(dict_, proto, length, packet=packet) # type: ignore[arg-type]
|
@@ -0,0 +1,214 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# mypy: disable-error-code=dict-item
|
3
|
+
"""UDP - User Datagram Protocol
|
4
|
+
==================================
|
5
|
+
|
6
|
+
.. module:: pcapkit.protocols.transport.udp
|
7
|
+
|
8
|
+
:mod:`pcapkit.protocols.transport.udp` contains
|
9
|
+
:class:`~pcapkit.protocols.transport.udp.UDP` only,
|
10
|
+
which implements extractor for User Datagram Protocol
|
11
|
+
(UDP) [*]_, whose structure is described as below:
|
12
|
+
|
13
|
+
======= ========= ===================== ===============================
|
14
|
+
Octets Bits Name Description
|
15
|
+
======= ========= ===================== ===============================
|
16
|
+
0 0 ``udp.srcport`` Source Port
|
17
|
+
2 16 ``udp.dstport`` Destination Port
|
18
|
+
4 32 ``udp.len`` Length (header includes)
|
19
|
+
6 48 ``udp.checksum`` Checksum
|
20
|
+
======= ========= ===================== ===============================
|
21
|
+
|
22
|
+
.. [*] https://en.wikipedia.org/wiki/User_Datagram_Protocol
|
23
|
+
|
24
|
+
"""
|
25
|
+
import collections
|
26
|
+
from typing import TYPE_CHECKING
|
27
|
+
|
28
|
+
from pcapkit.const.reg.transtype import TransType as Enum_TransType
|
29
|
+
from pcapkit.corekit.module import ModuleDescriptor
|
30
|
+
from pcapkit.protocols.data.transport.udp import UDP as Data_UDP
|
31
|
+
from pcapkit.protocols.schema.transport.udp import UDP as Schema_UDP
|
32
|
+
from pcapkit.protocols.transport.transport import Transport
|
33
|
+
|
34
|
+
if TYPE_CHECKING:
|
35
|
+
from typing import Any, Optional
|
36
|
+
|
37
|
+
from typing_extensions import Literal
|
38
|
+
|
39
|
+
from pcapkit.const.reg.apptype import AppType as Enum_AppType
|
40
|
+
from pcapkit.protocols.protocol import ProtocolBase as Protocol
|
41
|
+
from pcapkit.protocols.schema.schema import Schema
|
42
|
+
|
43
|
+
__all__ = ['UDP']
|
44
|
+
|
45
|
+
|
46
|
+
class UDP(Transport[Data_UDP, Schema_UDP],
|
47
|
+
schema=Schema_UDP, data=Data_UDP):
|
48
|
+
"""This class implements User Datagram Protocol.
|
49
|
+
|
50
|
+
This class currently supports parsing of the following protocols, which are
|
51
|
+
registered in the :attr:`self.__proto__ <pcapkit.protocols.transport.udp.UDP.__proto__>`
|
52
|
+
attribute:
|
53
|
+
|
54
|
+
.. list-table::
|
55
|
+
:header-rows: 1
|
56
|
+
|
57
|
+
* - Port Number
|
58
|
+
- Protocol
|
59
|
+
* - 80
|
60
|
+
- :class:`pcapkit.protocols.application.http.HTTP`
|
61
|
+
|
62
|
+
"""
|
63
|
+
|
64
|
+
##########################################################################
|
65
|
+
# Defaults.
|
66
|
+
##########################################################################
|
67
|
+
|
68
|
+
#: DefaultDict[int, ModuleDescriptor[Protocol] | Type[Protocol]]: Protocol
|
69
|
+
#: index mapping for decoding next layer, c.f.
|
70
|
+
#: :meth:`self._decode_next_layer <pcapkit.protocols.transport.transport.Transport._decode_next_layer>`
|
71
|
+
#: & :meth:`self._import_next_layer <pcapkit.protocols.protocol.Protocol._import_next_layer>`.
|
72
|
+
__proto__ = collections.defaultdict(
|
73
|
+
lambda: ModuleDescriptor('pcapkit.protocols.misc.raw', 'Raw'),
|
74
|
+
{
|
75
|
+
80: ModuleDescriptor('pcapkit.protocols.application.http', 'HTTP'), # HTTP
|
76
|
+
},
|
77
|
+
)
|
78
|
+
|
79
|
+
##########################################################################
|
80
|
+
# Properties.
|
81
|
+
##########################################################################
|
82
|
+
|
83
|
+
@property
|
84
|
+
def name(self) -> 'Literal["User Datagram Protocol"]':
|
85
|
+
"""Name of current protocol."""
|
86
|
+
return 'User Datagram Protocol'
|
87
|
+
|
88
|
+
@property
|
89
|
+
def length(self) -> 'Literal[8]':
|
90
|
+
"""Header length of current protocol."""
|
91
|
+
return 8
|
92
|
+
|
93
|
+
@property
|
94
|
+
def src(self) -> 'Enum_AppType':
|
95
|
+
"""Source port."""
|
96
|
+
return self._info.srcport
|
97
|
+
|
98
|
+
@property
|
99
|
+
def dst(self) -> 'Enum_AppType':
|
100
|
+
"""Destination port."""
|
101
|
+
return self._info.dstport
|
102
|
+
|
103
|
+
##########################################################################
|
104
|
+
# Methods.
|
105
|
+
##########################################################################
|
106
|
+
|
107
|
+
def read(self, length: 'Optional[int]' = None, **kwargs: 'Any') -> 'Data_UDP': # pylint: disable=unused-argument
|
108
|
+
"""Read User Datagram Protocol (UDP).
|
109
|
+
|
110
|
+
Structure of UDP header [:rfc:`768`]:
|
111
|
+
|
112
|
+
.. code-block:: text
|
113
|
+
|
114
|
+
0 7 8 15 16 23 24 31
|
115
|
+
+--------+--------+--------+--------+
|
116
|
+
| Source | Destination |
|
117
|
+
| Port | Port |
|
118
|
+
+--------+--------+--------+--------+
|
119
|
+
| | |
|
120
|
+
| Length | Checksum |
|
121
|
+
+--------+--------+--------+--------+
|
122
|
+
|
|
123
|
+
| data octets ...
|
124
|
+
+---------------- ...
|
125
|
+
|
126
|
+
Args:
|
127
|
+
length: Length of packet data.
|
128
|
+
**kwargs: Arbitrary keyword arguments.
|
129
|
+
|
130
|
+
Returns:
|
131
|
+
Parsed packet data.
|
132
|
+
|
133
|
+
"""
|
134
|
+
if length is None:
|
135
|
+
length = len(self)
|
136
|
+
schema = self.__header__
|
137
|
+
|
138
|
+
udp = Data_UDP(
|
139
|
+
srcport=schema.srcport,
|
140
|
+
dstport=schema.dstport,
|
141
|
+
len=schema.len,
|
142
|
+
checksum=schema.checksum,
|
143
|
+
)
|
144
|
+
|
145
|
+
return self._decode_next_layer(udp, (udp.srcport.port, udp.dstport.port), udp.len - 8)
|
146
|
+
|
147
|
+
def make(self,
|
148
|
+
srcport: 'Enum_AppType | int' = 0,
|
149
|
+
dstport: 'Enum_AppType | int' = 0,
|
150
|
+
checksum: 'bytes' = b'\x00\x00',
|
151
|
+
payload: 'bytes | Schema | Protocol' = b'',
|
152
|
+
**kwargs: 'Any') -> 'Schema_UDP':
|
153
|
+
"""Make (construct) packet data.
|
154
|
+
|
155
|
+
Args:
|
156
|
+
srcport: Source port.
|
157
|
+
dstport: Destination port.
|
158
|
+
checksum: Checksum.
|
159
|
+
payload: Payload data.
|
160
|
+
**kwargs: Arbitrary keyword arguments.
|
161
|
+
|
162
|
+
Returns:
|
163
|
+
Constructed packet data.
|
164
|
+
|
165
|
+
"""
|
166
|
+
return Schema_UDP(
|
167
|
+
srcport=srcport,
|
168
|
+
dstport=dstport,
|
169
|
+
len=8 + len(payload),
|
170
|
+
checksum=checksum,
|
171
|
+
payload=payload,
|
172
|
+
)
|
173
|
+
|
174
|
+
##########################################################################
|
175
|
+
# Data models.
|
176
|
+
##########################################################################
|
177
|
+
|
178
|
+
def __length_hint__(self) -> 'Literal[8]':
|
179
|
+
"""Return an estimated length for the object."""
|
180
|
+
return 8
|
181
|
+
|
182
|
+
@classmethod
|
183
|
+
def __index__(cls) -> 'Enum_TransType': # pylint: disable=invalid-index-returned
|
184
|
+
"""Numeral registry index of the protocol.
|
185
|
+
|
186
|
+
Returns:
|
187
|
+
Numeral registry index of the protocol in `IANA`_.
|
188
|
+
|
189
|
+
.. _IANA: https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
|
190
|
+
|
191
|
+
"""
|
192
|
+
return Enum_TransType.UDP # type: ignore[return-value]
|
193
|
+
|
194
|
+
##########################################################################
|
195
|
+
# Utilities.
|
196
|
+
##########################################################################
|
197
|
+
|
198
|
+
@classmethod
|
199
|
+
def _make_data(cls, data: 'Data_UDP') -> 'dict[str, Any]': # type: ignore[override]
|
200
|
+
"""Create key-value pairs from ``data`` for protocol construction.
|
201
|
+
|
202
|
+
Args:
|
203
|
+
data: protocol data
|
204
|
+
|
205
|
+
Returns:
|
206
|
+
Key-value pairs for protocol construction.
|
207
|
+
|
208
|
+
"""
|
209
|
+
return {
|
210
|
+
'srcport': data.srcport,
|
211
|
+
'dstport': data.dstport,
|
212
|
+
'checksum': data.checksum,
|
213
|
+
'payload': cls._make_payload(data),
|
214
|
+
}
|
pcapkit/py.typed
ADDED
File without changes
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# pylint: disable=unused-import, unused-wildcard-import
|
3
|
+
"""Compatibility Tools
|
4
|
+
=========================
|
5
|
+
|
6
|
+
.. module:: pcapkit.toolkit
|
7
|
+
|
8
|
+
:mod:`pcapkit.toolkit` provides several utility functions for
|
9
|
+
compatibility of multiple engine support.
|
10
|
+
|
11
|
+
"""
|
12
|
+
# tools for default engine
|
13
|
+
from pcapkit.toolkit.pcap import ipv4_reassembly, ipv6_reassembly, tcp_reassembly, tcp_traceflow
|
14
|
+
from pcapkit.toolkit.pcapng import ipv4_reassembly as pcapng_ipv4_reassembly
|
15
|
+
from pcapkit.toolkit.pcapng import ipv6_reassembly as pcapng_ipv6_reassembly
|
16
|
+
from pcapkit.toolkit.pcapng import tcp_reassembly as pcapng_tcp_reassembly
|
17
|
+
from pcapkit.toolkit.pcapng import tcp_traceflow as pcapng_tcp_traceflow
|
18
|
+
from pcapkit.toolkit.pcapng import block2frame as pcapng_block2frame
|
19
|
+
|
20
|
+
# # tools for DPKT engine
|
21
|
+
# from pcapkit.toolkit.dpkt import ipv6_hdr_len as dpkt_ipv6_hdr_len
|
22
|
+
# from pcapkit.toolkit.dpkt import packet2chain as dpkt_packet2chain
|
23
|
+
# from pcapkit.toolkit.dpkt import packet2dict as dpkt_packet2dict
|
24
|
+
# from pcapkit.toolkit.dpkt import ipv4_reassembly as dpkt_ipv4_reassembly
|
25
|
+
# from pcapkit.toolkit.dpkt import ipv6_reassembly as dpkt_ipv6_reassembly
|
26
|
+
# from pcapkit.toolkit.dpkt import tcp_reassembly as dpkt_tcp_reassembly
|
27
|
+
# from pcapkit.toolkit.dpkt import tcp_traceflow as dpkt_tcp_traceflow
|
28
|
+
|
29
|
+
# # tools for PyShark engine
|
30
|
+
# from pcapkit.toolkit.pyshark import packet2dict as pyshark_packet2dict
|
31
|
+
# from pcapkit.toolkit.pyshark import tcp_traceflow as pyshark_tcp_traceflow
|
32
|
+
|
33
|
+
# # tools for Scapy engine
|
34
|
+
# from pcapkit.toolkit.scapy import packet2chain as scapy_packet2chain
|
35
|
+
# from pcapkit.toolkit.scapy import packet2dict as scapy_packet2dict
|
36
|
+
# from pcapkit.toolkit.scapy import ipv4_reassembly as scapy_ipv4_reassembly
|
37
|
+
# from pcapkit.toolkit.scapy import ipv6_reassembly as scapy_ipv6_reassembly
|
38
|
+
# from pcapkit.toolkit.scapy import tcp_reassembly as scapy_tcp_reassembly
|
39
|
+
# from pcapkit.toolkit.scapy import tcp_traceflow as scapy_tcp_traceflow
|
40
|
+
|
41
|
+
__all__ = [
|
42
|
+
# default engine
|
43
|
+
'ipv4_reassembly', 'ipv6_reassembly', 'tcp_reassembly', 'tcp_traceflow',
|
44
|
+
'pcapng_ipv4_reassembly', 'pcapng_ipv6_reassembly', 'pcapng_tcp_reassembly', 'pcapng_tcp_traceflow',
|
45
|
+
'pcapng_block2frame',
|
46
|
+
|
47
|
+
# # DPKT engine
|
48
|
+
# 'dpkt_ipv6_hdr_len', 'dpkt_packet2chain', 'dpkt_packet2dict',
|
49
|
+
# 'dpkt_ipv4_reassembly', 'dpkt_ipv6_reassembly', 'dpkt_tcp_reassembly', 'dpkt_tcp_traceflow',
|
50
|
+
|
51
|
+
# # PyShark engine
|
52
|
+
# 'pyshark_packet2dict', 'pyshark_tcp_traceflow',
|
53
|
+
|
54
|
+
# # Scapy engine
|
55
|
+
# 'scapy_packet2chain', 'scapy_packet2dict',
|
56
|
+
# 'scapy_ipv4_reassembly', 'scapy_ipv6_reassembly', 'scapy_tcp_reassembly', 'scapy_tcp_traceflow',
|
57
|
+
]
|