scapy.layers.dns

DNS: Domain Name System.

class scapy.layers.dns.DNS(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
answers(other)
compress()

Return the compressed DNS packet (using dns_compress()

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             LENGTH            |               ID              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Q| OPCODE|A|T|R|R|Z|A|C| RCODE |            QDCOUNT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            ANCOUNT            |            NSCOUNT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            ARCOUNT            |               QD              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               AN              |               NS              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               AR              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. DNS                             
DNS fields

length

ShortField (Cond)

'None'

id

ShortField

'0'

qr

BitField (1 bit)

'0'

opcode

BitEnumField

'0'

aa

BitField (1 bit)

'0'

tc

BitField (1 bit)

'0'

rd

BitField (1 bit)

'1'

ra

BitField (1 bit)

'0'

z

BitField (1 bit)

'0'

ad

BitField (1 bit)

'0'

cd

BitField (1 bit)

'0'

rcode

BitEnumField

'0'

qdcount

DNSRRCountField

'None'

ancount

DNSRRCountField

'None'

nscount

DNSRRCountField

'None'

arcount

DNSRRCountField

'None'

qd

DNSQRField

'None'

an

DNSRRField

'None'

ns

DNSRRField

'None'

ar

DNSRRField

'None'

mysummary()
post_build(pkt, pay)
pre_dissect(s)

Check that a valid DNS over TCP message can be decoded

class scapy.layers.dns.DNSQR(*args, **kargs)

Bases: scapy.layers.dns.InheritOriginDNSStrPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             QNAME             |             QTYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             QCLASS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. DNSQR                            
DNSQR fields

qname

DNSStrField

"b'www.example.com'"

qtype

ShortEnumField

'1'

qclass

ShortEnumField

'1'

show_indent = 0
class scapy.layers.dns.DNSQRField(*args, **kwds)

Bases: scapy.layers.dns.DNSRRField

decodeRR(name, s, p)
class scapy.layers.dns.DNSRR(*args, **kargs)

Bases: scapy.layers.dns.InheritOriginDNSStrPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RDATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. DNSRR                            
DNSRR fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'1'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

FieldLenField

'None'

rdata

MultipleTypeField

'None'

show_indent = 0
class scapy.layers.dns.DNSRRCountField(*args, **kwds)

Bases: scapy.fields.ShortField

i2h(pkt, x)
i2m(pkt, x)
rr
class scapy.layers.dns.DNSRRDLV(*args, **kargs)

Bases: scapy.layers.dns.DNSRRDS

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             KEYTAG            |   ALGORITHM   |   DIGESTTYPE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             DIGEST            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. DNSRRDLV                           
DNSRRDLV fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'43'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

keytag

ShortField

'0'

algorithm

ByteEnumField

'5'

digesttype

ByteEnumField

'5'

digest

StrField

"b''"

class scapy.layers.dns.DNSRRDNSKEY(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             FLAGS             |    PROTOCOL   |   ALGORITHM   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           PUBLICKEY           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. DNSRRDNSKEY                         
DNSRRDNSKEY fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'48'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

flags

FlagsField

'<Flag 256 (Z)>'

protocol

ByteField

'3'

algorithm

ByteEnumField

'5'

publickey

StrField

"b''"

class scapy.layers.dns.DNSRRDS(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             KEYTAG            |   ALGORITHM   |   DIGESTTYPE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             DIGEST            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. DNSRRDS                           
DNSRRDS fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'43'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

keytag

ShortField

'0'

algorithm

ByteEnumField

'5'

digesttype

ByteEnumField

'5'

digest

StrField

"b''"

class scapy.layers.dns.DNSRRField(*args, **kwds)

Bases: scapy.fields.StrField

countfld
decodeRR(name, s, p)
getfield(pkt, s)
holds_packets = 1
i2m(pkt, x)
passon
class scapy.layers.dns.DNSRRMX(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           PREFERENCE          |            EXCHANGE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. DNSRRMX                           
DNSRRMX fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'6'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

preference

ShortField

'0'

exchange

DNSStrField

"b'.'"

class scapy.layers.dns.DNSRRNSEC(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            NEXTNAME           |          TYPEBITMAPS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. DNSRRNSEC                          
DNSRRNSEC fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'47'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

nextname

DNSStrField

"b'.'"

typebitmaps

RRlistField

"b''"

class scapy.layers.dns.DNSRRNSEC3(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    HASHALG    |     FLAGS     |           ITERATIONS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   SALTLENGTH  |              SALT             |   HASHLENGTH  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      NEXTHASHEDOWNERNAME      |          TYPEBITMAPS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. DNSRRNSEC3                          
DNSRRNSEC3 fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'50'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

hashalg

ByteField

'0'

flags

BitEnumField

'0'

iterations

ShortField

'0'

saltlength

FieldLenField

'0'

salt

StrLenField

"b''"

hashlength

FieldLenField

'0'

nexthashedownername

StrLenField

"b''"

typebitmaps

RRlistField

"b''"

class scapy.layers.dns.DNSRRNSEC3PARAM(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    HASHALG    |     FLAGS     |           ITERATIONS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   SALTLENGTH  |              SALT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DNSRRNSEC3PARAM                       
DNSRRNSEC3PARAM fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'51'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

hashalg

ByteField

'0'

flags

ByteField

'0'

iterations

ShortField

'0'

saltlength

FieldLenField

'0'

salt

StrLenField

"b''"

class scapy.layers.dns.DNSRROPT(*args, **kargs)

Bases: scapy.layers.dns.InheritOriginDNSStrPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |    EXTRCODE   |    VERSION    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Z               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RDATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. DNSRROPT                           
DNSRROPT fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'41'

rclass

ShortField

'4096'

extrcode

ByteField

'0'

version

ByteField

'0'

z

BitEnumField

'32768'

rdlen

FieldLenField

'None'

rdata

PacketListField

'[]'

class scapy.layers.dns.DNSRRRSIG(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          TYPECOVERED          |   ALGORITHM   |     LABELS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          ORIGINALTTL                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           EXPIRATION                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           INCEPTION                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             KEYTAG            |          SIGNERSNAME          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           SIGNATURE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. DNSRRRSIG                          
DNSRRRSIG fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'46'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

typecovered

ShortEnumField

'1'

algorithm

ByteEnumField

'5'

labels

ByteField

'0'

originalttl

IntField

'0'

expiration

UTCTimeField

'0'

inception

UTCTimeField

'0'

keytag

ShortField

'0'

signersname

DNSStrField

"b'.'"

signature

StrField

"b''"

class scapy.layers.dns.DNSRRSOA(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MNAME             |             RNAME             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             SERIAL                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            REFRESH                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             RETRY                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             EXPIRE                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            MINIMUM                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. DNSRRSOA                           
DNSRRSOA fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'6'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

mname

DNSStrField

"b'.'"

rname

DNSStrField

"b'.'"

serial

IntField

'0'

refresh

IntField

'0'

retry

IntField

'0'

expire

IntField

'0'

minimum

IntField

'0'

class scapy.layers.dns.DNSRRSRV(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            PRIORITY           |             WEIGHT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              PORT             |             TARGET            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. DNSRRSRV                           
DNSRRSRV fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'33'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

priority

ShortField

'0'

weight

ShortField

'0'

port

ShortField

'0'

target

DNSStrField

"b'.'"

class scapy.layers.dns.DNSRRTSIG(*args, **kargs)

Bases: scapy.layers.dns._DNSRRdummy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RRNAME            |              TYPE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RCLASS            |              TTL              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             RDLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ALGO NAME           |          TIME SIGNED          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             FUDGE             |            MAC LEN            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            MAC DATA           |          ORIGINAL ID          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             ERROR             |           OTHER LEN           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           OTHER DATA          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. DNSRRTSIG                          
DNSRRTSIG fields

rrname

DNSStrField

"b'.'"

type

ShortEnumField

'250'

rclass

ShortEnumField

'1'

ttl

IntField

'0'

rdlen

ShortField

'None'

algo_name

DNSStrField

"b'hmac-sha1'"

time_signed

TimeSignedField

'0'

fudge

ShortField

'0'

mac_len

FieldLenField

'20'

mac_data

StrLenField

"b''"

original_id

ShortField

'0'

error

ShortField

'0'

other_len

FieldLenField

'0'

other_data

StrLenField

"b''"

class scapy.layers.dns.DNSStrField(*args, **kwds)

Bases: scapy.fields.StrLenField

Special StrField that handles DNS encoding/decoding. It will also handle DNS decompression. (may be StrLenField if a length_from is passed),

getfield(pkt, s)
h2i(pkt, x)
i2len(pkt, x)
i2m(pkt, x)
class scapy.layers.dns.DNSTextField(*args, **kwds)

Bases: scapy.fields.StrLenField

Special StrLenField that handles DNS TEXT data (16)

any2i(pkt, x)
i2len(pkt, x)
i2m(pkt, s)
islist = 1
m2i(pkt, s)
class scapy.layers.dns.DNS_am(**kargs)

Bases: scapy.ansmachine.AnsweringMachine

filter = 'udp port 53'
function_name = 'dns_spoof'
is_request(req)
make_reply(req)
parse_options(joker='192.168.1.1', match=None)
scapy.layers.dns.DNSgetstr(*args, **kwargs)

Legacy function. Deprecated

class scapy.layers.dns.EDNS0TLV(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            OPTCODE            |             OPTLEN            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            OPTDATA            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. EDNS0TLV                           
EDNS0TLV fields

optcode

ShortEnumField

'0'

optlen

FieldLenField

'None'

optdata

StrLenField

"b''"

class scapy.layers.dns.InheritOriginDNSStrPacket(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
default_fields
direction
explicit
fields
fieldtype
name
original
overload_fields
overloaded_fields
packetfields
payload
post_transforms
raw_packet_cache
raw_packet_cache_fields
sent_time
sniffed_on
time
underlayer
wirelen
scapy.layers.dns.RRlist2bitmap(lst)

Encode a list of integers representing Resource Records to a bitmap field used in the NSEC Resource Record.

class scapy.layers.dns.RRlistField(*args, **kwds)

Bases: scapy.fields.StrField

h2i(pkt, x)
i2repr(pkt, x)
class scapy.layers.dns.TimeSignedField(*args, **kwds)

Bases: scapy.fields.Field

i2m(pkt, seconds)

Convert the number of seconds since 1-Jan-70 UTC to the packed representation.

i2repr(pkt, packed_seconds)

Convert the internal representation to a nice one using the RFC format.

m2i(pkt, packed_seconds)

Convert the internal representation to the number of seconds since 1-Jan-70 UTC.

scapy.layers.dns.bitmap2RRlist(bitmap)

Decode the ‘Type Bit Maps’ field of the NSEC Resource Record into an integer list.

scapy.layers.dns.dns_compress(pkt)

This function compresses a DNS packet according to compression rules.

scapy.layers.dns.dns_encode(x, check_built=False)

Encodes a bytes string into the DNS format

Parameters
  • x – the string

  • check_built – detect already-built strings and ignore them

Returns

the encoded bytes string

scapy.layers.dns.dns_get_str(s, pointer=0, pkt=None, _fullpacket=False)

This function decompresses a string s, starting from the given pointer.

Parameters
  • s – the string to decompress

  • pointer – first pointer on the string (default: 0)

  • pkt – (optional) an InheritOriginDNSStrPacket packet

Returns

(decoded_string, end_index, left_string)

scapy.layers.dns.dyndns_add(nameserver, name, rdata, type="A", ttl=10) -> result code (0=ok)

example: dyndns_add(“ns1.toto.com”, “dyn.toto.com”, “127.0.0.1”) RFC2136

scapy.layers.dns.dyndns_del(nameserver, name, type="ANY", ttl=10) -> result code (0=ok)

example: dyndns_del(“ns1.toto.com”, “dyn.toto.com”) RFC2136

scapy.layers.dns.isdnssecRR(obj)