OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
exabgp
/
protocol
/
ip
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
__init__.py
7.84 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
__pycache__
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
fragment.py
1.12 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
icmp.py
4.38 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
netmask.py
2.43 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
port.py
129.47 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
tcp
-
03/16/2023 12:55:54 PM
rwxr-xr-x
Editing: icmp.py
Close
# encoding: utf-8 """ icmp.py Created by Thomas Mangin on 2010-01-15. Copyright (c) 2009-2017 Exa Networks. All rights reserved. License: 3-clause BSD. (See the COPYRIGHT file) """ from exabgp.protocol.resource import Resource # ============================================================== ICMP Code Field # https://www.iana.org/assignments/icmp-parameters class ICMPType(Resource): NAME = 'icmp type' ECHO_REPLY = 0x00 # DESTINATION_UNREACHEABLE = 0x03 UNREACHABLE = 0x03 SOURCE_QUENCH = 0x04 REDIRECT = 0x05 ECHO_REQUEST = 0x08 ROUTER_ADVERTISEMENT = 0x09 ROUTER_SOLICIT = 0x0A TIME_EXCEEDED = 0x0B PARAMETER_PROBLEM = 0x0C TIMESTAMP = 0x0D TIMESTAMP_REPLY = 0x0E INFO_REQUEST = 0x0F INFO_REPLY = 0x10 MASK_REQUEST = 0x11 MASK_REPLY = 0x12 TRACEROUTE = 0x1E codes = dict( (k.lower().replace('_', '-'), v) for (k, v) in { 'ECHO_REPLY': ECHO_REPLY, 'UNREACHABLE': UNREACHABLE, 'SOURCE_QUENCH': SOURCE_QUENCH, 'REDIRECT': REDIRECT, 'ECHO_REQUEST': ECHO_REQUEST, 'ROUTER_ADVERTISEMENT': ROUTER_ADVERTISEMENT, 'ROUTER_SOLICIT': ROUTER_SOLICIT, 'TIME_EXCEEDED': TIME_EXCEEDED, 'PARAMETER_PROBLEM': PARAMETER_PROBLEM, 'TIMESTAMP': TIMESTAMP, 'TIMESTAMP_REPLY': TIMESTAMP_REPLY, 'INFO_REQUEST': INFO_REQUEST, 'INFO_REPLY': INFO_REPLY, 'MASK_REQUEST': MASK_REQUEST, 'MASK_REPLY': MASK_REPLY, 'TRACEROUTE': TRACEROUTE, }.items() ) names = dict([(r, l) for (l, r) in codes.items()]) # https://www.iana.org/assignments/icmp-parameters class ICMPCode(Resource): NAME = 'icmp code' # Destination Unreacheable (type 3) NETWORK_UNREACHABLE = 0x0 HOST_UNREACHABLE = 0x1 PROTOCOL_UNREACHABLE = 0x2 PORT_UNREACHABLE = 0x3 FRAGMENTATION_NEEDED = 0x4 SOURCE_ROUTE_FAILED = 0x5 DESTINATION_NETWORK_UNKNOWN = 0x6 DESTINATION_HOST_UNKNOWN = 0x7 SOURCE_HOST_ISOLATED = 0x8 DESTINATION_NETWORK_PROHIBITED = 0x9 DESTINATION_HOST_PROHIBITED = 0xA NETWORK_UNREACHABLE_FOR_TOS = 0xB HOST_UNREACHABLE_FOR_TOS = 0xC COMMUNICATION_PROHIBITED_BY_FILTERING = 0xD HOST_PRECEDENCE_VIOLATION = 0xE PRECEDENCE_CUTOFF_IN_EFFECT = 0xF # Redirect (Type 5) REDIRECT_FOR_NETWORK = 0x0 REDIRECT_FOR_HOST = 0x1 REDIRECT_FOR_TOS_AND_NET = 0x2 REDIRECT_FOR_TOS_AND_HOST = 0x3 # Time Exceeded (Type 11) TTL_EQ_ZERO_DURING_TRANSIT = 0x0 TTL_EQ_ZERO_DURING_REASSEMBLY = 0x1 # parameter Problem (Type 12) REQUIRED_OPTION_MISSING = 0x1 IP_HEADER_BAD = 0x2 codes = dict( (k.lower().replace('_', '-'), v) for (k, v) in { 'NETWORK_UNREACHABLE': NETWORK_UNREACHABLE, 'HOST_UNREACHABLE': HOST_UNREACHABLE, 'PROTOCOL_UNREACHABLE': PROTOCOL_UNREACHABLE, 'PORT_UNREACHABLE': PORT_UNREACHABLE, 'FRAGMENTATION_NEEDED': FRAGMENTATION_NEEDED, 'SOURCE_ROUTE_FAILED': SOURCE_ROUTE_FAILED, 'DESTINATION_NETWORK_UNKNOWN': DESTINATION_NETWORK_UNKNOWN, 'DESTINATION_HOST_UNKNOWN': DESTINATION_HOST_UNKNOWN, 'SOURCE_HOST_ISOLATED': SOURCE_HOST_ISOLATED, 'DESTINATION_NETWORK_PROHIBITED': DESTINATION_NETWORK_PROHIBITED, 'DESTINATION_HOST_PROHIBITED': DESTINATION_HOST_PROHIBITED, 'NETWORK_UNREACHABLE_FOR_TOS': NETWORK_UNREACHABLE_FOR_TOS, 'HOST_UNREACHABLE_FOR_TOS': HOST_UNREACHABLE_FOR_TOS, 'COMMUNICATION_PROHIBITED_BY_FILTERING': COMMUNICATION_PROHIBITED_BY_FILTERING, 'HOST_PRECEDENCE_VIOLATION': HOST_PRECEDENCE_VIOLATION, 'PRECEDENCE_CUTOFF_IN_EFFECT': PRECEDENCE_CUTOFF_IN_EFFECT, 'REDIRECT_FOR_NETWORK': REDIRECT_FOR_NETWORK, 'REDIRECT_FOR_HOST': REDIRECT_FOR_HOST, 'REDIRECT_FOR_TOS_AND_NET': REDIRECT_FOR_TOS_AND_NET, 'REDIRECT_FOR_TOS_AND_HOST': REDIRECT_FOR_TOS_AND_HOST, 'TTL_EQ_ZERO_DURING_TRANSIT': TTL_EQ_ZERO_DURING_TRANSIT, 'TTL_EQ_ZERO_DURING_REASSEMBLY': TTL_EQ_ZERO_DURING_REASSEMBLY, 'REQUIRED_OPTION_MISSING': REQUIRED_OPTION_MISSING, 'IP_HEADER_BAD': IP_HEADER_BAD, }.items() ) # names would have non-unique keys def __str__(self): return '%d' % int(self)