Documentation
¶
Index ¶
Constants ¶
View Source
const HdrLen uint8 = 12 // Length of DnsHeader in Bytes
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DnsHeader ¶
type DnsHeader struct { ID uint16 `json:"trans-id"` // Identifier generated to match outstanding queries QR uint8 `json:"trans-type"` // 1 Bit determining; query (0) or response (1) OPCODE OpCode `json:"opcode"` // 4 Bit determining type of query AA uint8 `json:"aa"` // 1 Bit Authoritive Answer TC uint8 `json:"tc"` // 1 Bit Truncation; specifies if the message is too long RD uint8 `json:"rd"` // 1 Bit Recursion Desired RA uint8 `json:"ra"` // 1 Bit Recursion Avaliable Z uint8 `json:"z"` // 1 Bit Reserved for future use (must be 0) RCODE ResponseCode `json:"rcode"` // Response Code QDCOUNT uint16 `json:"qdcount"` // Number of entries in Question Section ADCOUNT uint16 `json:"adcount"` // Number of RR in Answer Section NSCOUNT uint16 `json:"nscount"` // Number of NS RR in Authoritive Records Section ARCOUNT uint16 `json:"arcount"` // Number of RR in Additional Records Section }
type DnsMessage ¶
type DnsMessage struct { Hdr DnsHeader `json:"hdr"` // Required for all Messages (has length of below record arrays) Questions []DnsQuestion `json:"quests"` // The question/s for the Name Server Answers []DnsRR `json:"ans"` // Resource Records that answer the questions Authorities []DnsRR `json:"auths"` // Resource Records pointing towards an authority Additionals []DnsRR `json:"adds"` // Resource Records holdign additional information }
func MarshalDNS ¶
func MarshalDNS(data []byte) (DnsMessage, error)
type DnsQuestion ¶
type DnsQuestion struct { QNAME []QNameLabel `json:"name"` // Domain name represented as a sequence of labels. Ends with an empty length label QTYPE QType `json:"type"` // Specifies the Type of query eg. NS for an authoritative name server QCLASS QClass `json:"class"` // Specifies the Class of query eg. IN for internet }
type DnsRR ¶
type DnsRR struct { NAME []byte `json:"name"` // Uses Message Compression (See RFC1035 4.1.4) TYPE QType `json:"type"` // Specifies the Type of query eg. NS for an authoritative name server CLASS QClass `json:"class"` // Specifies the Class of query eg. IN for internet TTL uint32 `json:"ttl"` // Time interval in seconds RR can be cached before needing to be discarded. 0 = Don't cache RDLENGTH uint16 `json:"rdlen"` // Length in bytes of RDATA RDATA []byte `json:"rdata"` // Data of RR, format determined by TYPE and CLASS }
type QNameLabel ¶
type QType ¶
type QType uint16
const ( A QType = 1 // Host Address NS QType = 2 // Authoritative Name Server MD QType = 3 // Mail Destination (Obsolete - use MX) MF QType = 4 // Mail Forwarder (Obsolete - use MX) CNAME QType = 5 // Canonical Name for an Alias SOA QType = 6 // Marks the start of a zone of Authority MB QType = 7 // Mailbox domain name (EXPERIMENTAL) MG QType = 8 // Mail group member (EXPERIMENTAL) MR QType = 9 // Mail rename domain name (EXPERIMENTAL) NULL QType = 10 // Null RR (EXPERIMENTAL) WKS QType = 11 // Well known service description PTR QType = 12 // Domain name pointer HINFO QType = 13 // Host information MINFO QType = 14 // Mailbox or Mail list information MX QType = 15 // Mail exchange TXT QType = 16 // Text strings AXFR QType = 252 // Request for a transfer of an entire zone MAILB QType = 253 // Request for mailbox-related records (MB, MG or MR) MAILA QType = 254 // Request for mail agent RR (Obsolete - use MX) ALL QType = 255 // Request for all records )
type ResponseCode ¶
type ResponseCode uint8
const ( OK ResponseCode = 0 // No error condition FormatError ResponseCode = 1 // NS was unable to interpret query ServerFailure ResponseCode = 2 // NS was unable to process query due to problem with NS NameError ResponseCode = 3 // Domain name referenced does not exit NotImplemented ResponseCode = 4 // NS does not support hte requested kind of query Refused ResponseCode = 5 // NS refuses to perform the specified operation for policy reasons )
Click to show internal directories.
Click to hide internal directories.