scapy.layers.inet¶
IPv4 (Internet Protocol v4).
-
class
scapy.layers.inet.
DestIPField
(name, default)[source]¶ Bases:
scapy.fields.Field
[Union
[str
,scapy.base_classes.Net
],bytes
]-
bindings
= {<class 'scapy.layers.inet.UDP'>: [('224.0.0.251', {'dport': 5353}), ('224.0.0.2', {'dport': 1985})], <class 'scapy.contrib.ospf.OSPF_Hdr'>: [('224.0.0.5', {})]}¶
-
-
class
scapy.layers.inet.
ICMP
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | CODE | CHKSUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | SEQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS ORI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS RX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS TX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GW | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PTR | RESERVED | LENGTH | ADDR MASK | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ | | NEXTHOPMTU | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | UNUSED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ICMP
ICMP fields¶ type
8
code
MultiEnumField
(Depends on 8)0
chksum
None
id
XShortField
(Cond)0
seq
XShortField
(Cond)0
ts_ori
ICMPTimeStampField
(Cond)57434774
ts_rx
ICMPTimeStampField
(Cond)57434774
ts_tx
ICMPTimeStampField
(Cond)57434774
gw
IPField
(Cond)'0.0.0.0'
ptr
ByteField
(Cond)0
reserved
ByteField
(Cond)0
length
ByteField
(Cond)0
addr_mask
IPField
(Cond)'0.0.0.0'
nexthopmtu
ShortField
(Cond)0
unused
MultipleTypeField
(ShortField, IntField, StrFixedLenField)b''
-
-
class
scapy.layers.inet.
ICMPEcho_am
(**kargs)[source]¶ Bases:
scapy.ansmachine.AnsweringMachine
Responds to ICMP Echo-Requests (ping)
-
function_name
= 'icmpechod'¶
-
-
class
scapy.layers.inet.
ICMPTimeStampField
(name, default)[source]¶ Bases:
scapy.fields.Field
[int
,int
]-
re_hmsm
= re.compile('([0-2]?[0-9])[Hh:](([0-5]?[0-9])([Mm:]([0-5]?[0-9])([sS:.]([0-9]{0,3}))?)?)?$')¶
-
-
class
scapy.layers.inet.
ICMPerror
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | CODE | CHKSUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | SEQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS ORI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS RX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS TX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GW | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PTR | RESERVED | LENGTH | ADDR MASK | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ | | NEXTHOPMTU | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | UNUSED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ICMPerror
ICMPerror fields¶ type
8
code
MultiEnumField
(Depends on 8)0
chksum
None
id
XShortField
(Cond)0
seq
XShortField
(Cond)0
ts_ori
ICMPTimeStampField
(Cond)57434774
ts_rx
ICMPTimeStampField
(Cond)57434774
ts_tx
ICMPTimeStampField
(Cond)57434774
gw
IPField
(Cond)'0.0.0.0'
ptr
ByteField
(Cond)0
reserved
ByteField
(Cond)0
length
ByteField
(Cond)0
addr_mask
IPField
(Cond)'0.0.0.0'
nexthopmtu
ShortField
(Cond)0
unused
MultipleTypeField
(ShortField, IntField, StrFixedLenField)b''
-
-
class
scapy.layers.inet.
IP
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |VERSION| IHL | TOS | LEN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID |FLAGS| FRAG | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TTL | PROTO | CHKSUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DST | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IP
IP fields¶ version
BitField
(4 bits)4
ihl
BitField
(4 bits)None
tos
0
len
None
id
1
flags
<Flag 0 ()>
frag
BitField
(13 bits)0
ttl
64
proto
0
chksum
None
src
None
dst
None
options
[]
-
-
scapy.layers.inet.
IPID_count
(lst, funcID=<function <lambda>>, funcpres=<function <lambda>>)[source]¶ Identify IP id values classes in a list of packets
lst: a list of packets funcID: a function that returns IP id values funcpres: a function used to summarize packets
-
class
scapy.layers.inet.
IPOption
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption
IPOption fields¶ copy_flag
BitField
(1 bit)0
optclass
0
option
0
length
None
value
b''
-
registered_ip_options
= {0: <class 'scapy.layers.inet.IPOption_EOL'>, 1: <class 'scapy.layers.inet.IPOption_NOP'>, 2: <class 'scapy.layers.inet.IPOption_Security'>, 3: <class 'scapy.layers.inet.IPOption_LSRR'>, 4: <class 'scapy.layers.inet.IPOption_Timestamp'>, 7: <class 'scapy.layers.inet.IPOption_RR'>, 8: <class 'scapy.layers.inet.IPOption_Stream_Id'>, 9: <class 'scapy.layers.inet.IPOption_SSRR'>, 11: <class 'scapy.layers.inet.IPOption_MTU_Probe'>, 12: <class 'scapy.layers.inet.IPOption_MTU_Reply'>, 18: <class 'scapy.layers.inet.IPOption_Traceroute'>, 19: <class 'scapy.layers.inet.IPOption_Address_Extension'>, 20: <class 'scapy.layers.inet.IPOption_Router_Alert'>, 21: <class 'scapy.layers.inet.IPOption_SDBM'>}¶
-
-
class
scapy.layers.inet.
IPOption_Address_Extension
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | SRC EXT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | DST EXT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_Address_Extension
IPOption_Address_Extension fields¶ copy_flag
BitField
(1 bit)1
optclass
0
option
19
length
10
src_ext
'0.0.0.0'
dst_ext
'0.0.0.0'
-
-
class
scapy.layers.inet.
IPOption_EOL
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.Packet
]-
aliastypes
¶
-
-
class
scapy.layers.inet.
IPOption_LSRR
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | POINTER | ROUTERS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. IPOption_LSRR
IPOption_LSRR fields¶ copy_flag
BitField
(1 bit)1
optclass
0
option
3
length
None
pointer
4
routers
[]
-
-
class
scapy.layers.inet.
IPOption_MTU_Probe
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | MTU | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_MTU_Probe
IPOption_MTU_Probe fields¶ copy_flag
BitField
(1 bit)0
optclass
0
option
11
length
4
mtu
0
-
-
class
scapy.layers.inet.
IPOption_MTU_Reply
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | MTU | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_MTU_Reply
IPOption_MTU_Reply fields¶ copy_flag
BitField
(1 bit)0
optclass
0
option
12
length
4
mtu
0
-
-
class
scapy.layers.inet.
IPOption_NOP
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.Packet
]-
aliastypes
¶
-
-
class
scapy.layers.inet.
IPOption_RR
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | POINTER | ROUTERS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. IPOption_RR
IPOption_RR fields¶ copy_flag
BitField
(1 bit)0
optclass
0
option
7
length
None
pointer
4
routers
[]
-
-
class
scapy.layers.inet.
IPOption_Router_Alert
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | ALERT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_Router_Alert
IPOption_Router_Alert fields¶ copy_flag
BitField
(1 bit)1
optclass
0
option
20
length
4
alert
0
-
-
class
scapy.layers.inet.
IPOption_SDBM
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | ADDRESSES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_SDBM
IPOption_SDBM fields¶ copy_flag
BitField
(1 bit)1
optclass
0
option
21
length
None
addresses
[]
-
-
class
scapy.layers.inet.
IPOption_SSRR
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | POINTER | ROUTERS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. IPOption_SSRR
IPOption_SSRR fields¶ copy_flag
BitField
(1 bit)1
optclass
0
option
9
length
None
pointer
4
routers
[]
-
-
class
scapy.layers.inet.
IPOption_Security
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | SECURITY | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | COMPARTMENT | HANDLING RESTRICTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TRANSMISSION CONTROL CODE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_Security
IPOption_Security fields¶ copy_flag
BitField
(1 bit)1
optclass
0
option
2
length
11
security
0
compartment
0
handling_restrictions
0
transmission_control_code
b'xxx'
-
-
class
scapy.layers.inet.
IPOption_Stream_Id
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | SECURITY | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_Stream_Id
IPOption_Stream_Id fields¶ copy_flag
BitField
(1 bit)1
optclass
0
option
8
length
4
security
0
-
-
class
scapy.layers.inet.
IPOption_Timestamp
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | POINTER | OFLW | FLG | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | INTERNET ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TIMESTAMP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_Timestamp
IPOption_Timestamp fields¶ copy_flag
BitField
(1 bit)0
optclass
2
option
4
length
None
pointer
9
oflw
BitField
(4 bits)0
flg
1
internet_address
IPField
(Cond)'0.0.0.0'
timestamp
0
-
-
class
scapy.layers.inet.
IPOption_Traceroute
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|OPT| OPTION | LENGTH | ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OUTBOUND HOPS | RETURN HOPS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ORIGINATOR IP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPOption_Traceroute
IPOption_Traceroute fields¶ copy_flag
BitField
(1 bit)0
optclass
0
option
18
length
12
id
0
outbound_hops
0
return_hops
0
originator_ip
'0.0.0.0'
-
-
class
scapy.layers.inet.
IPTools
[source]¶ Bases:
object
Add more powers to a class with an “src” attribute.
-
class
scapy.layers.inet.
IPerror
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |VERSION| IHL | TOS | LEN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID |FLAGS| FRAG | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TTL | PROTO | CHKSUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DST | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IPerror
IPerror fields¶ version
BitField
(4 bits)4
ihl
BitField
(4 bits)None
tos
0
len
None
id
1
flags
<Flag 0 ()>
frag
BitField
(13 bits)0
ttl
64
proto
0
chksum
None
src
None
dst
None
options
[]
-
-
class
scapy.layers.inet.
RandTCPOptions
(size=None)[source]¶ Bases:
scapy.volatile.VolatileValue
-
class
scapy.layers.inet.
TCP
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPORT | DPORT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SEQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACK | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |DATAOFS|RESER| FLAGS | WINDOW | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CHKSUM | URGPTR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. TCP
TCP fields¶ sport
20
dport
80
seq
0
ack
0
dataofs
BitField
(4 bits)None
reserved
BitField
(3 bits)0
flags
<Flag 2 (S)>
window
8192
chksum
None
urgptr
0
options
b''
-
-
class
scapy.layers.inet.
TCPOptionsField
(name, default, fmt='H', remain=0)[source]¶ Bases:
scapy.fields._StrField
[bytes
]-
islist
= 1¶
-
-
class
scapy.layers.inet.
TCP_client
(*args, **kargs)[source]¶ Bases:
scapy.automaton.Automaton
Creates a TCP Client Automaton. This automaton will handle TCP 3-way handshake.
- Usage: the easiest usage is to use it as a SuperSocket.
>>> a = TCP_client.tcplink(HTTP, "www.google.com", 80) >>> a.send(HTTPRequest()) >>> a.recv()
- Parameters
ip – the ip to connect to
port –
-
actions
= {'ack_of_fin_received': [], 'connect': [<function TCP_client.send_syn>], 'fin_received': [<function TCP_client.send_finack>], 'incoming_data_received': [<function TCP_client.receive_data>], 'outgoing_data_received': [<function TCP_client.send_data>], 'reset_received': [], 'stop_ack_timeout': [], 'stop_fin_received': [<function TCP_client.stop_send_ack>], 'stop_requested': [<function TCP_client.stop_send_finack>], 'synack_received': [<function TCP_client.send_ack_of_synack>]}¶
-
conditions
= {'CLOSED': [], 'ESTABLISHED': [], 'LAST_ACK': [], 'START': [<function TCP_client.connect>], 'STOP': [<function TCP_client.stop_requested>], 'STOP_SENT_FIN_ACK': [], 'SYN_SENT': []}¶
-
initial_states
= [<function ATMT.state.<locals>.deco.<locals>.state_wrapper>]¶
-
ioevents
= {'CLOSED': [], 'ESTABLISHED': [<function TCP_client.outgoing_data_received>], 'LAST_ACK': [], 'START': [], 'STOP': [], 'STOP_SENT_FIN_ACK': [], 'SYN_SENT': []}¶
-
ionames
= ['tcp']¶
-
iosupersockets
= [<function TCP_client.outgoing_data_received>]¶
-
recv_conditions
= {'CLOSED': [], 'ESTABLISHED': [<function TCP_client.incoming_data_received>, <function TCP_client.reset_received>, <function TCP_client.fin_received>], 'LAST_ACK': [<function TCP_client.ack_of_fin_received>], 'START': [], 'STOP': [], 'STOP_SENT_FIN_ACK': [<function TCP_client.stop_fin_received>], 'SYN_SENT': [<function TCP_client.synack_received>]}¶
-
state
= None¶
-
states
= {'CLOSED': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>, 'ESTABLISHED': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>, 'LAST_ACK': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>, 'START': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>, 'STOP': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>, 'STOP_SENT_FIN_ACK': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>, 'SYN_SENT': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>}¶
-
stop_states
= [<function ATMT.state.<locals>.deco.<locals>.state_wrapper>]¶
-
tcplink
= <scapy.automaton._ATMT_to_supersocket object>¶
-
timeout
= {'CLOSED': [(None, None)], 'ESTABLISHED': [(None, None)], 'LAST_ACK': [(None, None)], 'START': [(None, None)], 'STOP': [(None, None)], 'STOP_SENT_FIN_ACK': [(1, <function TCP_client.stop_ack_timeout>), (None, None)], 'SYN_SENT': [(None, None)]}¶
-
class
scapy.layers.inet.
TCPerror
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPORT | DPORT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SEQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACK | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |DATAOFS|RESER| FLAGS | WINDOW | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CHKSUM | URGPTR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. TCPerror
TCPerror fields¶ sport
20
dport
80
seq
0
ack
0
dataofs
BitField
(4 bits)None
reserved
BitField
(3 bits)0
flags
<Flag 2 (S)>
window
8192
chksum
None
urgptr
0
options
b''
-
-
class
scapy.layers.inet.
TracerouteResult
(res=None, name='Traceroute', stats=None)[source]¶ Bases:
scapy.plist._PacketList
[Tuple
[scapy.packet.Packet
,scapy.packet.Packet
]],scapy.base_classes.BasePacketList
[Tuple
[scapy.packet.Packet
,scapy.packet.Packet
]],scapy.base_classes._CanvasDumpExtended
-
graph
(ASres=<scapy.as_resolvers.AS_resolver_multi object>, padding=0, **kargs)[source]¶ x.graph(ASres=conf.AS_resolver, other args): ASres=None : no AS resolver => no clustering ASres=AS_resolver() : default whois AS resolver (riswhois.ripe.net) ASres=AS_resolver_cymru(): use whois.cymru.com whois database ASres=AS_resolver(server=”whois.ra.net”) type: output type (svg, ps, gif, jpg, etc.), passed to dot’s “-T” option # noqa: E501 target: filename or redirect. Defaults pipe to Imagemagick’s display program # noqa: E501 prog: which graphviz program to use
-
graphASres
¶
-
graphdef
¶
-
graphpadding
¶
-
hloc
¶
-
nloc
¶
-
padding
¶
-
-
class
scapy.layers.inet.
UDP
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPORT | DPORT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LEN | CHKSUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. UDP
UDP fields¶ sport
53
dport
53
len
None
chksum
None
-
payload_guess
¶ Possible sublayers:
DoIP
,SOMEIP
,BFD
,BIFT
,CoAP
,CRX1New
,GENEVE
,GTPHeader
,GTP_U_Header
,IKEv2
,LDP
,LTP
,MPLS
,MQTTSN
,PFCP
,ProfinetIO
,RIPng
,BTH
,SebekHead
,SOCKS5UDP
,VQP
,Wireguard
,BOOTP
,_dhcp6_dispatcher
,DNS
,HSRP
,ESP
,L2TP
,_LLMNR
,MGCP
,MobileIP
,NBNSNodeStatusResponse
,NBNSQueryRequest
,NBNSQueryResponseNegative
,NBNSQueryResponse
,NBNSRequest
,NBNSWackResponse
,NBTDatagram
,NetflowHeader
,NTP
,Radius
,RIP
,SNMP
,TFTP
,VXLAN
,ZEP2
-
-
class
scapy.layers.inet.
UDPerror
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPORT | DPORT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LEN | CHKSUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. UDPerror
UDPerror fields¶ sport
53
dport
53
len
None
chksum
None
-
-
scapy.layers.inet.
defrag
(plist) → ([not fragmented], [defragmented],[source]¶ [ [bad fragments], [bad fragments], … ])
-
scapy.layers.inet.
fragleak
(target, sport=123, dport=123, timeout=0.2, onlyasc=0, count=None)[source]¶
-
scapy.layers.inet.
in4_chksum
(proto, u, p)[source]¶ As Specified in RFC 2460 - 8.1 Upper-Layer Checksums
Performs IPv4 Upper Layer checksum computation. Provided parameters are: - ‘proto’ : value of upper layer protocol - ‘u’ : IP upper layer instance - ‘p’ : the payload of the upper layer provided as a string
-
scapy.layers.inet.
overlap_frag
(p, overlap, fragsize=8, overlap_fragsize=None)[source]¶ Build overlapping fragments to bypass NIPS
p: the original packet overlap: the overlapping data fragsize: the fragment size of the packet overlap_fragsize: the fragment size of the overlapping packet
-
scapy.layers.inet.
traceroute
(target, dport=80, minttl=1, maxttl=30, sport=<RandShort>, l4=None, filter=None, timeout=2, verbose=None, **kargs)[source]¶ Instant TCP traceroute
- Parameters
target – hostnames or IP addresses
dport – TCP destination port (default is 80)
minttl – minimum TTL (default is 1)
maxttl – maximum TTL (default is 30)
sport – TCP source port (default is random)
l4 – use a Scapy packet instead of TCP
filter – BPF filter applied to received packets
timeout – time to wait for answers (default is 2s)
verbose – detailed output
- Returns
an TracerouteResult, and a list of unanswered packets