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
显示类似RFC的架构
 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. ICMP                             
ICMP字段

type

ByteEnumField

8

code

MultiEnumField (取决于类型)

0

chksum

XShortField

None

id

XShortField (Cond)

0

seq

XShortField (Cond)

0

ts_ori

ICMPTimeStampField (Cond)

51591820

ts_rx

ICMPTimeStampField (Cond)

51591820

ts_tx

ICMPTimeStampField (Cond)

51591820

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

ShortField (Cond)

0

unused

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
显示类似RFC的架构
 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. ICMPerror                          
ICMPerror字段

type

ByteEnumField

8

code

MultiEnumField (取决于类型)

0

chksum

XShortField

None

id

XShortField (Cond)

0

seq

XShortField (Cond)

0

ts_ori

ICMPTimeStampField (Cond)

51591820

ts_rx

ICMPTimeStampField (Cond)

51591820

ts_tx

ICMPTimeStampField (Cond)

51591820

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

ShortField (Cond)

0

unused

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
显示类似RFC的架构
 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领域

version

BitField (4位)

4

ihl

BitField (4位)

None

tos

XByteField

0

len

ShortField

None

id

ShortField

1

flags

FlagsField (3位)

<Flag 0 ()>

frag

BitField (13位)

0

ttl

ByteField

64

proto

ByteEnumField

0

chksum

XShortField

None

src

SourceIPField

None

dst

DestIPField

None

options

PacketListField

[]

fragment(fragsize=1480)

片段IP数据报

hashret()
mysummary()
payload_guess

可能的子层: CARPEIGRPEtherIPIGMPIGMPv3MPLSOSPF_HdrRSVPICMPIPTCPUDPIPv6AHESPGRESCTP

post_build(p, pay)
route()
scapy.layers.inet.IPID_count(lst, funcID=<function <lambda>>, funcpres=<function <lambda>>)

在数据包列表中识别IP ID值类别

lst:数据包列表funcID:返回IP ID值的函数funcpres:用于汇总数据包的函数

class scapy.layers.inet.IPOption(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
classmethod dispatch_hook(pkt=None, *args, **kargs)
extract_padding(p)
fields_desc
显示类似RFC的架构
 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栏位

copy_flag

BitField (1位)

0

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

0

length

FieldLenField

None

value

StrLenField

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'>, 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
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

1

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

19

length

ByteField

10

src_ext

IPField

'0.0.0.0'

dst_ext

IPField

'0.0.0.0'

class scapy.layers.inet.IPOption_EOL(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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_EOL                         
IPOption_EOL字段

copy_flag

BitField (1位)

0

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

0

class scapy.layers.inet.IPOption_LSRR(*args, **kargs)

Bases: scapy.layers.inet.IPOption_RR

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

1

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

3

length

FieldLenField

None

pointer

ByteField

4

routers

FieldListField

[]

class scapy.layers.inet.IPOption_MTU_Probe(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

0

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

11

length

ByteField

4

mtu

ShortField

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_Reply                      
IPOption_MTU_Reply字段

copy_flag

BitField (1位)

0

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

12

length

ByteField

4

mtu

ShortField

0

class scapy.layers.inet.IPOption_NOP(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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_NOP                         
IPOption_NOP字段

copy_flag

BitField (1位)

0

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

1

class scapy.layers.inet.IPOption_RR(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

0

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

7

length

FieldLenField

None

pointer

ByteField

4

routers

FieldListField

[]

get_current_router()
class scapy.layers.inet.IPOption_Router_Alert(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

1

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

20

length

ByteField

4

alert

ShortEnumField

0

class scapy.layers.inet.IPOption_SDBM(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

1

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

21

length

FieldLenField

None

addresses

FieldListField

[]

class scapy.layers.inet.IPOption_SSRR(*args, **kargs)

Bases: scapy.layers.inet.IPOption_RR

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

1

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

9

length

FieldLenField

None

pointer

ByteField

4

routers

FieldListField

[]

class scapy.layers.inet.IPOption_Security(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

1

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

2

length

ByteField

11

security

ShortField

0

compartment

ShortField

0

handling_restrictions

ShortField

0

transmission_control_code

StrFixedLenField

b'xxx'

class scapy.layers.inet.IPOption_Stream_Id(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1位)

1

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

8

length

ByteField

4

security

ShortField

0

class scapy.layers.inet.IPOption_Traceroute(*args, **kargs)

Bases: scapy.layers.inet.IPOption

aliastypes
fields_desc
显示类似RFC的架构
 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字段

copy_flag

BitField (1 bit)

0

optclass

BitEnumField (2位)

0

option

BitEnumField (5位)

18

length

ByteField

12

id

ShortField

0

outbound_hops

ShortField

0

return_hops

ShortField

0

originator_ip

IPField

'0.0.0.0'

class scapy.layers.inet.IPTools

Bases: object

使用" src"属性为类添加更多功能.

hops()
ottl()
whois()

whois是源并打印输出

class scapy.layers.inet.IPerror(*args, **kargs)

Bases: scapy.layers.inet.IP

aliastypes
answers(other)
fields_desc
显示类似RFC的架构
 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字段

version

BitField (4位)

4

ihl

BitField (4位)

None

tos

XByteField

0

len

ShortField

None

id

ShortField

1

flags

FlagsField (3位)

<Flag 0 ()>

frag

BitField (13 bits)

0

ttl

ByteField

64

proto

ByteEnumField

0

chksum

XShortField

None

src

SourceIPField

None

dst

DestIPField

None

options

PacketListField

[]

mysummary()
payload_guess

可能的子层: ICMPerrorIPerrorTCPerrorUDPerror

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
显示类似RFC的架构
 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字段

sport

ShortEnumField

20

dport

ShortEnumField

80

seq

IntField

0

ack

IntField

0

dataofs

BitField (4位)

None

reserved

BitField (3位)

0

flags

FlagsField (9位)

<Flag 2 (S)>

window

ShortField

8192

chksum

XShortField

None

urgptr

ShortField

0

options

TCPOptionsField

b''

hashret()
mysummary()
payload_guess

可能的子层: ENETSOMEIPBGPCRX1NewDiamGENIPTCPLDPModbusADURequestModbusADUResponseMQTTOpenFlowRTRSkinnySOCKSTacacsHeaderDNSHTTPUDPNBTSessionPPTPSkinny

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.Automaton

创建一个TCP客户端自动机. 该自动机将处理TCP 3向握手.

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 –连接的ip

  • 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)
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
显示类似RFC的架构
 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                           
TCP错误字段

sport

ShortEnumField

20

dport

ShortEnumField

80

seq

IntField

0

ack

IntField

0

dataofs

BitField (4位)

None

reserved

BitField (3位)

0

flags

FlagsField (9位)

<Flag 2 (S)>

window

ShortField

8192

chksum

XShortField

None

urgptr

ShortField

0

options

TCPOptionsField

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,其他args):ASres = None:没有AS解析器=>没有群集ASres = AS_resolver():默认whois AS解析器(riswhois.ripe.net)ASres = AS_resolver_cymru():使用whois .cymru.com whois数据库ASres = AS_resolver(server =" whois.ra.net")类型:输出类型(svg,ps,gif,jpg等),传递给点的" -T"选项#noqa:E501目标:文件名或重定向. 默认管道到Imagemagick的显示程序#noqa:E501编:使用哪个graphviz程序

graphASres
graphdef
graphpadding
hloc
make_graph(ASres=None, padding=0)
nloc
padding
show()
trace3D(join=True)

给出traceroute的3D表示. 右键:旋转场景中间按钮:缩放左移按钮:将场景左按钮移到球上:切换IP显示球上的双击按钮:扫描端口21、22、23、25、80和443并显示结果

trace3D_notebook()

与从Jupyther笔记本计算机运行时使用的trace3D相同

world_trace()

在世界地图上显示traceroute结果.

class scapy.layers.inet.UDP(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
answers(other)
extract_padding(s)
fields_desc
显示类似RFC的架构
 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字段

sport

ShortEnumField

53

dport

ShortEnumField

53

len

ShortField

None

chksum

XShortField

None

hashret()
mysummary()
payload_guess

可能的子层: SOMEIPBFDBIFTCoAPCRX1NewGENEVEGTPHeaderGTP_U_HeaderIKEv2LDPLTPMPLSMQTTSNPFCPProfinetIORIPngBTHSebekHeadSOCKS5UDPVQPWireguardBOOTP_dhcp6_dispatcherDNSHSRPESPL2TP_LLMNRMGCPMobileIPNBNSNodeStatusResponseNBNSQueryRequestNBNSQueryResponseNegativeNBNSQueryResponseNBNSRequestNBNSWackResponseNBTDatagramNetflowHeaderNTPRadiusRIPSNMPTFTPVXLANZEP2

post_build(p, pay)
class scapy.layers.inet.UDPerror(*args, **kargs)

Bases: scapy.layers.inet.UDP

aliastypes
answers(other)
fields_desc
显示类似RFC的架构
 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                           
UDP错误字段

sport

ShortEnumField

53

dport

ShortEnumField

53

len

ShortField

None

chksum

XShortField

None

mysummary()
post_dissection(pkt)
scapy.layers.inet.defrag(plist) → ([not fragmented], [defragmented],

[[坏片段],[坏片段],…])

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)

分割大IP数据报

scapy.layers.inet.in4_chksum(proto, u, p)

如RFC 2460中所指定-8.1高层校验和

执行IPv4上层校验和计算. 提供的参数为:-'proto':上层协议的值-'u':IP上层实例-'p':以字符串形式提供的上层有效负载

scapy.layers.inet.inet_register_l3(l2, l3)
scapy.layers.inet.overlap_frag(p, overlap, fragsize=8, overlap_fragsize=None)

构建重叠的片段以绕过NIPS

p:原始数据包重叠:重叠数据fragsize:数据包的片段大小overlay_fragsize:重叠数据包的片段大小

scapy.layers.inet.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)

即时TCP跟踪路由

Parameters
  • 目标 –主机名或IP地址

  • dport – TCP目标端口(默认为80)

  • minttl – minimum TTL (default is 1)

  • maxttl –最大TTL(默认为30)

  • sport – TCP源端口(默认为随机)

  • l4 –使用Scapy数据包代替TCP

  • filter – BPF过滤器应用于接收到的数据包

  • 超时 –等待答案的时间(默认为2秒)

  • 详细 –详细输出

Returns

TracerouteResult和未答复的数据包列表

scapy.layers.inet.traceroute_map(ips, **kargs)

利用函数调用多个目标上的traceroute,然后在地图上显示不同的路径.

Parameters
  • ips –将在其上调用traceroute的IP列表

  • kargs –(可选) kwarg ,传递给traceroute