scapy.layers.inet
IPv4 (Internet Protocol v4).
- class scapy.layers.inet.DestIPField(name, default)
Bases:
scapy.fields.IPField,scapy.fields.DestField- 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', {})]}
- i2h(pkt, x)
- i2m(pkt, x)
- class scapy.layers.inet.ICMP(*args, **kargs)
Bases:
scapy.packet.Packet- aliastypes
- answers(other)
- 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 | UNUSED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ICMPICMP fields type
8code
MultiEnumField(Depends on type)0chksum
Noneid
XShortField(Cond)0seq
XShortField(Cond)0ts_ori
ICMPTimeStampField(Cond)54169446ts_rx
ICMPTimeStampField(Cond)54169446ts_tx
ICMPTimeStampField(Cond)54169446gw
IPField(Cond)'0.0.0.0'ptr
ByteField(Cond)0reserved
ByteField(Cond)0length
ByteField(Cond)0addr_mask
IPField(Cond)'0.0.0.0'nexthopmtu
ShortField(Cond)0unused
ShortField(Cond)0unused
IntField(Cond)0
- guess_payload_class(payload)
- hashret()
- mysummary()
- post_build(p, pay)
- class scapy.layers.inet.ICMPTimeStampField(name, default)
Bases:
scapy.fields.IntField- any2i(pkt, val)
- i2repr(pkt, val)
- 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)
Bases:
scapy.layers.inet.ICMP- aliastypes
- answers(other)
- 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 | UNUSED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ICMPerrorICMPerror fields type
8code
MultiEnumField(Depends on type)0chksum
Noneid
XShortField(Cond)0seq
XShortField(Cond)0ts_ori
ICMPTimeStampField(Cond)54169446ts_rx
ICMPTimeStampField(Cond)54169446ts_tx
ICMPTimeStampField(Cond)54169446gw
IPField(Cond)'0.0.0.0'ptr
ByteField(Cond)0reserved
ByteField(Cond)0length
ByteField(Cond)0addr_mask
IPField(Cond)'0.0.0.0'nexthopmtu
ShortField(Cond)0unused
ShortField(Cond)0unused
IntField(Cond)0
- mysummary()
- post_dissection(pkt)
- class scapy.layers.inet.IP(*args, **kargs)
Bases:
scapy.packet.Packet,scapy.layers.inet.IPTools- aliastypes
- answers(other)
- extract_padding(s)
- 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. IPIP fields version
BitField(4 bits)4ihl
BitField(4 bits)Nonetos
0len
Noneid
1flags
FlagsField(3 bits)<Flag 0 ()>frag
BitField(13 bits)0ttl
64proto
0chksum
Nonesrc
Nonedst
Noneoptions
[]
- fragment(fragsize=1480)
Fragment IP datagrams
- hashret()
- mysummary()
- payload_guess
Possible sublayers:
CARP,EIGRP,EtherIP,IGMP,IGMPv3,MPLS,OSPF_Hdr,RSVP,ICMP,IP,TCP,UDP,IPv6,AH,ESP,GRE,SCTP
- post_build(p, pay)
- route()
- scapy.layers.inet.IPID_count(lst, funcID=<function <lambda>>, funcpres=<function <lambda>>)
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)
Bases:
scapy.packet.Packet- aliastypes
- classmethod dispatch_hook(pkt=None, *args, **kargs)
- extract_padding(p)
- 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. IPOptionIPOption fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)0length
Nonevalue
b''
- classmethod register_variant()
- 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)
Bases:
scapy.layers.inet.IPOption- 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_ExtensionIPOption_Address_Extension fields copy_flag
BitField(1 bit)1optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)19length
10src_ext
'0.0.0.0'dst_ext
'0.0.0.0'
- class scapy.layers.inet.IPOption_EOL(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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 | +-+-+-+-+-+-+-+-+ Fig. IPOption_EOLIPOption_EOL fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)0
- class scapy.layers.inet.IPOption_LSRR(*args, **kargs)
Bases:
scapy.layers.inet.IPOption_RR- 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_LSRRIPOption_LSRR fields copy_flag
BitField(1 bit)1optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)3length
Nonepointer
4routers
[]
- class scapy.layers.inet.IPOption_MTU_Probe(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_ProbeIPOption_MTU_Probe fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)11length
4mtu
0
- class scapy.layers.inet.IPOption_MTU_Reply(*args, **kargs)
Bases:
scapy.layers.inet.IPOption_MTU_Probe- 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_ReplyIPOption_MTU_Reply fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)12length
4mtu
0
- class scapy.layers.inet.IPOption_NOP(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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 | +-+-+-+-+-+-+-+-+ Fig. IPOption_NOPIPOption_NOP fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)1
- class scapy.layers.inet.IPOption_RR(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_RRIPOption_RR fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)7length
Nonepointer
4routers
[]
- get_current_router()
- class scapy.layers.inet.IPOption_Router_Alert(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_AlertIPOption_Router_Alert fields copy_flag
BitField(1 bit)1optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)20length
4alert
0
- class scapy.layers.inet.IPOption_SDBM(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_SDBMIPOption_SDBM fields copy_flag
BitField(1 bit)1optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)21length
Noneaddresses
[]
- class scapy.layers.inet.IPOption_SSRR(*args, **kargs)
Bases:
scapy.layers.inet.IPOption_RR- 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_SSRRIPOption_SSRR fields copy_flag
BitField(1 bit)1optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)9length
Nonepointer
4routers
[]
- class scapy.layers.inet.IPOption_Security(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_SecurityIPOption_Security fields copy_flag
BitField(1 bit)1optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)2length
11security
0compartment
0handling_restrictions
0transmission_control_code
b'xxx'
- class scapy.layers.inet.IPOption_Stream_Id(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_IdIPOption_Stream_Id fields copy_flag
BitField(1 bit)1optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)8length
4security
0
- class scapy.layers.inet.IPOption_Timestamp(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_TimestampIPOption_Timestamp fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)2option
BitEnumField(5 bits)4length
Nonepointer
9oflw
BitField(4 bits)0flg
BitEnumField(4 bits)1internet_address
IPField(Cond)'0.0.0.0'timestamp
0
- post_build(p, pay)
- class scapy.layers.inet.IPOption_Traceroute(*args, **kargs)
Bases:
scapy.layers.inet.IPOption- 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_TracerouteIPOption_Traceroute fields copy_flag
BitField(1 bit)0optclass
BitEnumField(2 bits)0option
BitEnumField(5 bits)18length
12id
0outbound_hops
0return_hops
0originator_ip
'0.0.0.0'
- class scapy.layers.inet.IPTools
Bases:
objectAdd more powers to a class with an “src” attribute.
- hops()
- ottl()
- whois()
whois the source and print the output
- class scapy.layers.inet.IPerror(*args, **kargs)
Bases:
scapy.layers.inet.IP- aliastypes
- answers(other)
- 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. IPerrorIPerror fields version
BitField(4 bits)4ihl
BitField(4 bits)Nonetos
0len
Noneid
1flags
FlagsField(3 bits)<Flag 0 ()>frag
BitField(13 bits)0ttl
64proto
0chksum
Nonesrc
Nonedst
Noneoptions
[]
- mysummary()
- class scapy.layers.inet.RandTCPOptions(size=None)
Bases:
scapy.volatile.VolatileValue
- class scapy.layers.inet.TCP(*args, **kargs)
Bases:
scapy.packet.Packet- aliastypes
- answers(other)
- 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. TCPTCP fields sport
20dport
80seq
0ack
0dataofs
BitField(4 bits)Nonereserved
BitField(3 bits)0flags
FlagsField(9 bits)<Flag 2 (S)>window
8192chksum
Noneurgptr
0options
b''
- hashret()
- mysummary()
- payload_guess
Possible sublayers:
ENET,SOMEIP,BGP,CRX1New,DiamG,ENIPTCP,LDP,ModbusADURequest,ModbusADUResponse,MQTT,OpenFlow,RTR,Skinny,SOCKS,TacacsHeader,DNS,HTTP,UDP,NBTSession,PPTP,Skinny
- post_build(p, pay)
- class scapy.layers.inet.TCPOptionsField(name, default, fmt='H', remain=0)
Bases:
scapy.fields.StrField- getfield(pkt, s)
- i2h(pkt, x)
- i2m(pkt, x)
- islist = 1
- m2i(pkt, x)
- randval()
- class scapy.layers.inet.TCP_client(*args, **kargs)
Bases:
scapy.automaton.AutomatonCreates 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 –
- CLOSED(*args, **kargs)
- ESTABLISHED(*args, **kargs)
- LAST_ACK(*args, **kargs)
- START(*args, **kargs)
- SYN_SENT(*args, **kargs)
- ack_of_fin_received(pkt)
- 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': [], 'synack_received': [<function TCP_client.send_ack_of_synack>]}
- conditions = {'CLOSED': [], 'ESTABLISHED': [], 'LAST_ACK': [], 'START': [<function TCP_client.connect>], 'SYN_SENT': []}
- connect()
- fin_received(pkt)
- incoming_data_received(pkt)
- initial_states = [<function ATMT.state.<locals>.deco.<locals>.state_wrapper>]
- ioevents = {'CLOSED': [], 'ESTABLISHED': [<function TCP_client.outgoing_data_received>], 'LAST_ACK': [], 'START': [], 'SYN_SENT': []}
- ionames = ['tcp']
- iosupersockets = [<function TCP_client.outgoing_data_received>]
- master_filter(pkt)
- outgoing_data_received(fd)
- parse_args(ip, port, *args, **kargs)
- receive_data(pkt)
- 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': [], 'SYN_SENT': [<function TCP_client.synack_received>]}
- reset_received(pkt)
- send_ack_of_synack(pkt)
- send_data(d)
- send_finack(pkt)
- send_syn()
- 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>, 'SYN_SENT': <function ATMT.state.<locals>.deco.<locals>.state_wrapper>}
- synack_received(pkt)
- tcplink = <scapy.automaton._ATMT_to_supersocket object>
- timeout = {'CLOSED': [(None, None)], 'ESTABLISHED': [(None, None)], 'LAST_ACK': [(None, None)], 'START': [(None, None)], 'SYN_SENT': [(None, None)]}
- class scapy.layers.inet.TCPerror(*args, **kargs)
Bases:
scapy.layers.inet.TCP- aliastypes
- answers(other)
- 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. TCPerrorTCPerror fields sport
20dport
80seq
0ack
0dataofs
BitField(4 bits)Nonereserved
BitField(3 bits)0flags
FlagsField(9 bits)<Flag 2 (S)>window
8192chksum
Noneurgptr
0options
b''
- mysummary()
- post_dissection(pkt)
- class scapy.layers.inet.TracerouteResult(res=None, name='Traceroute', stats=None)
Bases:
scapy.plist.SndRcvList- get_trace()
- graph(ASres=<scapy.as_resolvers.AS_resolver_multi object>, padding=0, **kargs)
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
- make_graph(ASres=None, padding=0)
- nloc
- padding
- show()
- trace3D(join=True)
Give a 3D representation of the traceroute. right button: rotate the scene middle button: zoom shift-left button: move the scene left button on a ball: toggle IP displaying double-click button on a ball: scan ports 21,22,23,25,80 and 443 and display the result
- trace3D_notebook()
Same than trace3D, used when ran from Jupyther notebooks
- world_trace()
Display traceroute results on a world map.
- class scapy.layers.inet.UDP(*args, **kargs)
Bases:
scapy.packet.Packet- aliastypes
- answers(other)
- extract_padding(s)
- 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. UDPUDP fields sport
53dport
53len
Nonechksum
None
- hashret()
- mysummary()
- payload_guess
Possible sublayers:
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
- post_build(p, pay)
- class scapy.layers.inet.UDPerror(*args, **kargs)
Bases:
scapy.layers.inet.UDP- aliastypes
- answers(other)
- 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. UDPerrorUDPerror fields sport
53dport
53len
Nonechksum
None
- mysummary()
- post_dissection(pkt)
- scapy.layers.inet.defrag(plist) ([not fragmented], [defragmented],
[ [bad fragments], [bad fragments], … ])
- scapy.layers.inet.defragment(plist) plist defragmented as much as possible
- scapy.layers.inet.fragleak(target, sport=123, dport=123, timeout=0.2, onlyasc=0, count=None)
- scapy.layers.inet.fragleak2(target, timeout=0.4, onlyasc=0, count=None)
- scapy.layers.inet.fragment(pkt, fragsize=1480)
Fragment a big IP datagram
- scapy.layers.inet.in4_chksum(proto, u, p)
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.inet_register_l3(l2, l3)
- scapy.layers.inet.overlap_frag(p, overlap, fragsize=8, overlap_fragsize=None)
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.report_ports(target, ports)
portscan a target and output a LaTeX table report_ports(target, ports) -> string
- scapy.layers.inet.traceroute(target, dport=80, minttl=1, maxttl=30, sport=<RandShort>, l4=None, filter=None, timeout=2, verbose=None, **kargs)
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
- scapy.layers.inet.traceroute_map(ips, **kargs)
Util function to call traceroute on multiple targets, then show the different paths on a map.
- Parameters
ips – a list of IPs on which traceroute will be called
kargs – (optional) kwargs, passed to traceroute