Makaretu.Dns Contains the IPv6 address of the named resource. Creates a new instance of the class. Base class for an Internet address. Creates a new instance of the class. The Internet address. Either IPv4 or IPv6. Creates an A or AAAA record based on the . The name of the node that owns the address. An IPv4 or IPv6 address. An or tha describes the and . Andrew File System Database. Maps a domain name to the name of an AFS cell database server. Creates a new instance of the class. A 16 bit integer which specifies the type of AFS server. See A domain-name which specifies a host running an AFS server. The name of an AFS server. Contains the IPv4 address of the named resource. Creates a new instance of the class. The canonical name for an alias. CNAME RRs cause no additional section processing, but name servers may choose to restart the query at the canonical name in certain cases. See the description of name server logic in [RFC - 1034] for details. Creates a new instance of the class. A domain-name which specifies the canonical or primary name for the owner. The owner name is an alias. Registry of implemented . IANA maintains a list of all known types at . Defined hashing algorithms. The key is the . The value is a function that returns a new . Gets the hash algorithm for the . One of the values. A new instance of the that implements the . When is not implemented. Gets the hash algorithm for the . One of the values. A new instance of the that is used for the . When the or its is not implemented. Identities the cryptographic digest algorithm used by the resource records. The values are maintained by IANA at . Implemented digest algorithms are obtained from the . RFC 4035 SHA-1. SHA-256 GOST R 34.11-94. SHA-384 SHA-512 (not in IANA registry) Alias for a name and all its subnames. Alias for a name and all its subnames, unlike , which is an alias for only the exact name. Like a CNAME record, the DNS lookup will continue by retrying the lookup with the new name. Creates a new instance of the class. A domain-name which specifies the canonical or primary name for the owner. The owner name is an alias. Identifies the network of the . The values are maintained by IANA at . The Internet. The CSNET class (Obsolete - used only for examples insome obsolete RFCs). The CHAOS class. Hesiod[Dyer 87]. Used in UPDATE message to signify no class. Only used in QCLASS. The usage of a key. No specific usage. Used by a parent zone's . Used to sign the zone. When set, the must be the name of the zone. Public key cryptography to sign and authenticate resource records. Creates a new instance of the class. Creates a new instance of the class from the specified RSA key. A public or private RSA key. The security algorithm to use. Only RSA types are allowed. Identifies the intended usage of the key. Must be three. Defaults to 3. Identifies the public key's cryptographic algorithm. Identifies the type of key (RSA, ECDSA, ...) and the hashing algorithm. Determines the format of the. The public key material. The format depends on the key . Calculates the key tag. A non-unique identifier for the public key. for the details. Base class for all DNS objects. Provides helper methods for wire serialisation, cloning and caching. When the object was created. Local time. Cloning does not alter the value. Length in bytes of the object when serialised. Numbers of bytes when serialised. Makes a deep copy of the object. A deep copy of the dns object. Uses serialisation to make a copy. Makes a deep copy of the object. Some type derived from . A deep copy of the dns object. Use serialisation to make a copy. Reads the DNS object from a byte array. The source for the DNS object. Reads the DNS object from a byte array. The source for the DNS object. The offset into the . The number of bytes in the . Reads the DNS object from a stream. The source for the DNS object. Writes the DNS object to a byte array. A byte array containing the binary representaton of the DNS object. Writes the DNS object to a stream. The destination for the DNS object. A resource record or query type. A host address. RFC 1035 An authoritative name server. RFC 1035 A mail destination (OBSOLETE - use MX). RFC 1035 A mail forwarder (OBSOLETE - use MX). RFC 1035 The canonical name for an alias. RFC 1035 Marks the start of a zone of authority. RFC 1035 A mailbox domain name (EXPERIMENTAL). RFC 1035 A mail group member (EXPERIMENTAL). RFC 1035 A mailbox rename domain name (EXPERIMENTAL). RFC 1035 A Null resource record (EXPERIMENTAL). RFC 1035 A well known service description. RFC 3232 A domain name pointer. RFC 1035 Host information. RFC 1035 RFC 1010 Mailbox or mail list information. RFC 1035 Mail exchange. RFC 1035 RFC 974 Text resources. RFC 1035 RFC 1464 Responsible Person. RFC 1183 AFS Data Base location. RFC 1183 RFC 5864 An IPv6 host address. RFC 3596 A resource record which specifies the location of the server(s) for a specific protocol and domain. RFC 2782 Maps an entire domain name. RFC 6672 Option record. RFC 6891 Delegation Signer. Signature for a RRSET with a particular name, class, and type. Next secure owener. Public key cryptography to sign and authenticate resource records. Authenticated next secure owner. Parameters needed by authoritative servers to calculate hashed owner names. Shared secret key. Transactional Signature. A request for a transfer of an entire zone. RFC 1035 A request for mailbox-related records (MB, MG or MR). RFC 1035 A request for mail agent RRs (Obsolete - see MX). RFC 1035 A request for any record(s). RFC 1035 A Uniform Resource Identifier (URI) resource record. RFC 7553 A certification authority authorization. RFC 6844 A domain name consists of one or more parts, , that are conventionally delimited by dots, such as "example.org". Equality is based on the number of and the case-insenstive contents of . The root name space. The empty string. The DNS is a hierarchical naming system for computers, services, or any resource participating in the Internet. The top of that hierarchy is the root domain. The root domain does not have a formal name and its label in the DNS hierarchy is an empty string. A sequence of labels that make up the domain name. A sequece of strings. The last label is the TLD (top level domain). Creates a new instance of the class from the specified name. The dot separated labels; such as "example.org". The name can contain backslash to escape a character. See RFC 4343 for the character escaping rules. To use us backslash in a domain name (highly unusaual), you must use a double backslash. Creates a new instance of the class from the sequence of label. The . The labels are not parsed; character escaping is not performed. Combine multiple domain names to form one. The domain names to join. A new domain containing all the . Returns the textual representation. The concatenation of the separated by a dot. If a label contains a dot or backslash, then it is escaped with a backslash. Gets the canonical form of the domain name. A domain name in the canonical form. All uppercase US-ASCII letters in the are replaced by the corresponding lowercase US-ASCII letters. Determines if this domain name is a subdomain of or equals an another domain name. Another domain. true if this domain name is a subdomain of or equals . Determines if this domain name is a subdomain of another domain name. Another domain. true if this domain name is a subdomain of . Gets the parent's domain name. The domain name of the parent or null if there is no parent; e.g. this is the root. Value equality. Value inequality. Implicit casting of a to a . A possibly escaped domain name. A new Equivalent to new DomainName(s) Determines if the two domain name labels are equal. A domain name label A domain name label true if and are considered equal. Uses a case-insenstive algorithm, where 'A-Z' are equivalent to 'a-z'. Delegation Signer. Defined in RFC 4034 section 5. Creates a new instance of the class. Creates a new instance of the class from the specified . The dns key to use. If true, key usage checks are ignored. Both and must be set. The of the is missing. The tag of the referenced . The of the referenced . The cryptographic hash algorithm used to create the . One of the value. The digest of the referenced . digest = HashAlgorithm(DNSKEY owner name | DNSKEY RDATA) DNSSEC Algorithm Understood. Defined in RFC 6975 - Signaling Cryptographic Algorithm Understanding in DNS Security Extensions(DNSSEC) Creates a new instance of the class. The understood algorithms. A list of implemented . Create a new instance of the class with the known/implemented security algorithms. The are obtained from the . DS Hash Understood. Defined in RFC 6975 - Signaling Cryptographic Algorithm Understanding in DNS Security Extensions(DNSSEC) Creates a new instance of the class. The understood hashing algorithms. A list of implemented . Create a new instance of the class with the known/implemented hashing algorithms. The are obtained from the . TCP idle time. Signals a variable idle timeout. This signalling encourages the use of long-lived TCP connections by allowing the state associated with TCP transport to be managed effectively with minimal impact on the DNS transaction time. Creates a new instance of the class. The idle timeout value for the TCP connection. The resolution is 100 milliseconds. NSEC3 Hash Understood. Defined in RFC 6975 - Signaling Cryptographic Algorithm Understanding in DNS Security Extensions(DNSSEC) Creates a new instance of the class. The understood hashing algorithms. A list of implemented . Create a new instance of the class with the known/implemented hashing algorithms. The are obtained from the . Name server ID. The identity of the name server. Creates a new instance of the class. The ID of the name server. The bytes used to identify the name server. Contains some information on an Extended DNS option. EdnsOptions are found in the . The contains the metadata on known EDNS options. When reading, if the registry does not contain the record, then an is used. IANA - DNS EDNS0 Option Codes. The option type. A code to specify the type of EDNS option. Codes are specified in IANA - DNS EDNS0 Option Codes. Read the data that is specific to the option . The source of the option's data. The length, in bytes, of the data. Derived classes must implement this method. Write the data that is specific to the resource record . The destination for the option's data. Derived classes must implement this method. Metadata on EDNS options. All the EDNS options. The key is the . The value is a function that returns a new . Register a new EDNS option. A type that is derived from . Padding for a . Padding is used to frustrate size-based correlation of the encrypted message. Defined in RFC 7830 - The EDNS(0) Padding Option Creates a new instance of the class. The padding bytes. The bytes used for padding. Normally all bytes are zero. EDSN option codes. Codes are specified in IANA - DNS EDNS0 Option Codes. DNS Name Server Identifier (NSID) Option. DNSSEC Algorithm Understood. DS Hash Understood. NSEC3 Hash Understood. Client Subnet in DNS Queries. Extension Mechanisms for DNS (EDNS) EXPIRE Option. Domain Name System (DNS) Cookies. The edns-tcp-keepalive EDNS0 Option. The EDNS(0) Padding Option. CHAIN Query Requests in DNS. Signaling Trust Anchor Knowledge in DNSSEC. Minimum value for local or experiment use. Maximum value for local or experiment use.s Reserved for future expansion. Host information. Standard values for CPU and OS can be found in [RFC-1010]. HINFO records are used to acquire general information about a host. The main use is for protocols such as FTP that can use special procedures when talking between machines or operating systems of the same type. Creates a new instance of the class. CPU type. Operating system type. Extension methods for . Original code copied from Translates a IPv4 or IPv6 address into an arpa address. Used for reverse DNS lookup to get the domain name of the given address. The address to translate. The arpa representation of the address. Presentation format serialisation of a resource record. The text representation of a . It is also referred to as the "master file format". See RFC 1035 - 5 Master File and RFC 3597 - Handling of Unknown DNS Resource Record (RR) Types for more details. The adds helper methods to deal with a . Reads the text representation of a resource record. The source of the . The final resource record. Reading a will return a new instance that is type specific Writes the text representation of a resource record. The destination of the . Answers a question. Get an answer to a question. A containing a that needs to be answered. Is used to stop the task. When cancelled, the is raised. A task that represents the asynchronous operation. The task's value is the response to the . Wire format serialisation of a DNS object. Reads the DNS object that is encoded in the wire format. The source of the DNS object. The final DNS object. Reading a will return a new instance that is type specific unless the RDLENGTH is zero. Writes the DNS object encoded in the wire format. The destination of the DNS object. Identifies a key exchange algorithm. Server assignment. Diffie-Hellman exchange (DH). GSS-API negotiation. Resolver assignment. Key deletion. All communications inside of the domain protocol are carried in a single format called a message. The least significant 4 bits of the opcode. Maximum bytes of a message. 9000 bytes. In reality the max length is dictated by the network MTU. For legacy IPv4 systems, 512 bytes should be used. For DNSSEC, at least 4096 bytes are needed. 9000 bytes (less IP and UPD header lengths) is specified by Multicast DNS. Minimum bytes of a messages 12 bytes. A 16 bit identifier assigned by the program that generates any kind of query. This identifier is copied the corresponding reply and can be used by the requester to match up replies to outstanding queries. A unique identifier. A one bit field that specifies whether this message is a query(0), or a response(1). false for a query; otherwise, true for a response. Determines if the message is query. true for a query; otherwise, false for a response. Determines if the message is a response to a query. false for a query; otherwise, true for a response. The requested operation. One of the values. Both standard and extended values are supported. This value is set by the originator of a query and copied into the response. Extended opcodes (values requiring more than 4 bits) are split between the message header and the in the section. When setting an extended opcode, the will be created if it does not already exist. Authoritative Answer - this bit is valid in responses, and specifies that the responding name server is an authority for the domain name in question section. Note that the contents of the answer section may have multiple owner names because of aliases.The AA bit corresponds to the name which matches the query name, or the first owner name in the answer section. true for an authoritative answer; otherwise, false. TrunCation - specifies that this message was truncated due to length greater than that permitted on the transmission channel. true for a truncated message; otherwise, false. Recursion Desired - this bit may be set in a query and is copied into the response. If RD is set, it directs the name server to pursue the query recursively. Recursive query support is optional. true if recursion is desired; otherwise, false. Recursion Available - this be is set or cleared in a response, and denotes whether recursive query support is available in the name server. true if recursion is available; otherwise, false. Reserved for future use. Must be zero in all queries and responses. Authentic data. true if the response data is authentic; otherwise, false. Only used in a response and indicates that all the data included in the and sections are authenticated by the server according to its DNSSEC policies. Checking disabled. true if the query does not require authenticated data; otherwise, false. Only used in a query and indicates that pending (non-authenticated) data is acceptable to the resolver sending the query. Indicates that DNS Security Extensions (DNSSEC) are supported. true if DNSSEC is supported; otherwise, false. The DO bit is actually in the , when setting the record is added to if not already present. Response code - this 4 bit field is set as part of responses. One of the values. The list of question. A list of questions. The list of answers. A list of answers. The list of authority records. A list of authority resource records. The list of additional records. A list of additional resource records. Create a response for the query message. A new response for the query message. Make the message not exceed the specified length. The maximum number bytes for the message. If the message does not fit into bytes, then are removed and then are removed. If it is still too big, then the bit is set. Enables DNS Security Extensions (DNSSEC) for the message. The for a fluent design. Sets to true. Adds an to if not already present. The requested operation of a . Defines the standard and extended (EDNS(0)) operations. Standard values are between 0 and 15 (0xF). Extended values are between 16 and 4095 (0xFFF). Standard query. Inverse query (obsolete), see . A server status request. Zone change, see . Update message, see . Response codes. No error condition The name server was unable to interpret the query. The name server was unable to process this query due to a problem with the name server. Meaningful only for responses from an authoritative name server, this code signifies that the domain name referenced in the query does not exist. The name server does not support the requested kind of query. The name server refuses to perform the specified operation for policy reasons. Some name that ought not to exist, does exist. Some RRset that ought not to exist, does exist. Some RRset that ought not to exist, does exist. The server is not authoritative for the zone named in the Zone Section. A name used in the Prerequisite or Update Section is not within the zone denoted by the Zone Section. Invalid version. Invalid signature (TSIG). Invalid key (TSIG). Invalid date/time (TSIG). Bad TKEY mode (TKEY). Duplicate key name (TKEY). Algorithm not supported (TKEY). Mail exchange. MX records cause type A additional section processing for the host specified by EXCHANGE.The use of MX RRs is explained in detail in [RFC-974]. Creates a new instance of the class. The preference given to this RR among others at the same owner. Lower values are preferred. A domain-name which specifies a host willing to act as a mail exchange for the owner name. The name of an mail exchange. The processing options of a . Defined by RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence. Indicates uncovered unsigned delegations. Parameters needed by authoritative servers to calculate hashed owner names. Defined by RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence. Creates a new instance of the class. The cryptographic hash algorithm used to create the hashed owner name. One of the value. Not used, must be zero. Number of times to perform the . Appended to the original owner name before hashing. Used to defend against pre-calculated dictionary attacks. Authenticated denial of existence for DNS Resource Record Sets. Defined by RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence. Creates a new instance of the class. The cryptographic hash algorithm used to create the . One of the value. Indicates different processing. Number of times to perform the . Appended to the original owner name before hashing. Used to defend against pre-calculated dictionary attacks. The next hashed owner name that has authoritative data. The sequence of RR types present at the NSEC3 RR's owner name. Defaults to the empty list. Contains the the next owner name and the set of RR types present at the NSEC RR's owner name [RFC3845]. Creates a new instance of the class. The next owner name that has authoritative data or contains a delegation point NS RRset Defaults to the . The sequence of RR types present at the NSEC RR's owner name. Defaults to the empty list. An authoritative name server. NS records cause both the usual additional section processing to locate a type A record, and, when used in a referral, a special search of the zone in which they reside for glue information. The NS RR states that the named host should be expected to have a zone starting at owner name of the specified class. Note that the class may not indicate the protocol family which should be used to communicate with the host, although it is typically a strong hint.For example, hosts which are name servers for either Internet (IN) or Hesiod (HS) class information are normally queried using IN class protocols. Creates a new instance of the class. A domain-name which specifies a host which should be authoritative for the specified class and domain. A null RR (EXPERIMENTAL). NULL records cause no additional section processing. NULL RRs are not allowed in master files. NULLs are used as placeholders in some experimental extensions of the DNS. Creates a new instance of the class. Specfic data for the resource. An extension mechanism for DNS (EDNS(0)). An OPT record does not carry any DNS data. It is used only to contain control information pertaining to the question-and-answer sequence of a specific transaction. OPT RRs MUST NOT be cached, forwarded, or stored in or loaded from master files. The OPTRecord can be present in the section. The property is repurposed to specify the requestor's payload size. The property is repurposed to specify the , and properties. Creates a new instance of the class. The maximimum packet size that can be received by the requestor. Specified in number of bytes. Defaults to 1280, which is reasonable over Ethernet. The property is repurposed to specify the requestor's payload size. The most significant 8 bits of the opcode. Defaults to zero. The property is repurposed to specify the opcode's most significant bits. The EDNS version. Defaults to zero. The property is repurposed to specify the version. The DNSSEC OK bit as defined by RFC3225. Defaults to false. The property is repurposed to specify the version. The extended DNS options. The EDNS option sequence. Methods to read DNS data items encoded in the presentation (text) format. Indicates that the token is at the begining of the line without any leading whitespace. The reader relative position within the stream. Creates a new instance of the using the specified . The source for data items. The origin domain name, sometimes called the zone name. Defaults to "". Origin is used when the domain name "@" is used for a domain name. Read a byte. The number as a byte. Read an unsigned short. The number as an unsigned short. Read an unsigned int. The number as an unsignd int. Read a domain name. The domain name as a string. Read a string. The string. Read bytes encoded in base-64. The bytes. This must be the last field in the RDATA because the string can contain embedded spaces. Read a time span (interval) in 16-bit seconds. A with second resolution. Read a time span (interval) in 32-bit seconds. A with second resolution. Read an Internet address. Ignored. An . Read a DNS Type. Either the name of a or the string "TYPEx". Read a date/time. The . Allows a in the form "yyyyMMddHHmmss" or the number of seconds since the unix epoch (00:00:00 on 1 January 1970 UTC). Read hex encoded RDATA. A byte array containing the RDATA. See for all the details. Read a resource record. A or null if no more resource records are available. Processes the "$ORIGIN" and "$TTL" specials that define the and a default time-to-live respectively. A domain name can be "@" to refer to the . A missing domain name will use the previous record's domain name. Defaults the to . Defaults the to either the "$TTL" or the . Determines if the reader is at the end of a line. Methods to write DNS data items encoded in the presentation (text) format. Creates a new instance of the using the specified . The source for data items. Writes a space. Writes a CRLF. Write an byte. The value to write. Write a space after the value. Write an unsigned short. The value to write. Write a space after the value. Write an unsigned int. The value to write. Write a space after the value. Write a string. An ASCII string. Write a space after the value. Quotes and escapes are added as needned. Write a string. An ASCII string. Write a space after the value. Quotes and escapes are NOT added. Write a domain name. The value to write. Write a space after the value. Write bytes encoded in base-16. The value to write. Write a space after the value. Write bytes encoded in base-64. The value to write. Write a space after the value. Write a time span (interval) in 16-bit seconds. The number of seconds to write. Write a space after the value. Write a time span (interval) in 32-bit seconds. The number of seconds to write. Write a space after the value. Write a date/time. The UTC . Resolution is seconds. Write a space after the value. Write an Internet address. The value to write. Write a space after the value. Write a DNS Type. The value to write. Write a space after the value. Either the name of a or the string "TYPEx". Write a DNS Class. The value to write. Write a space after the value. Either the name of a or the string "CLASSx". A domain name pointer. PTR records cause no additional section processing. These RRs are used in special domains to point to some other location in the domain space. These records are simple data, and don't imply any special processing similar to that performed by CNAME, which identifies aliases.See the description of the IN-ADDR.ARPA domain for an example. Creates a new instance of the class. A domain-name which points to some location in the domain name space. A question about a domain name to resolve. A domain name to query. A two octet code which specifies the type of the query. One of the values. The values for this field include all codes valid for a TYPE field, together with some more general codes which can match more than one type of the resource record. A two octet code that specifies the class of the query. Defaults to . A caching name server. Removes any expired resource record from the cache. The time to use to determine if a resource record is expired. Defaults to . Authoritative nodes are not pruned. Prune the cache in the background. The delay between pruning. Allows cancelation of the background task. Cache the response. A response from a name server. Both the and the are added to the cache. Only resources records with a positive are added. A dictionary of DNS nodes. This is a portion of the DNS distribute database. The key is the case insensitive and the value is a . Include the zone information. The source of the zone information. The that represents the zone. All included nodes are marked as . Remove all nodes that belong to the zone. The name of the zone. Add or update the resource record to the catalog. The is also the name of the node. Indicates if the is authoritative or cached. Only used when a is created. The that was created or updated. If the already exists, then update the non-equality properties and . Include the root name servers. The that represents the "root". A DNS recursive resolver typically needs a "root hints file". This file contains the names and IP addresses of the authoritative name servers for the root zone, so the software can bootstrap the DNS resolution process. Include the resource records. The source of the resource records. Indicates if a is authoritative or cached. Only used when a is created. Get a sequence of nodes in canonical order. A sequence of nodes in canonical order. Node names are converted to US-ASCII lowercase and then sorted by their reversed labels. Add PTR records for each authoritative A/AAAA record. This enables reverse DNS lookup of all address records. A concurrent, simplified HashSet. This is a copy and paste of taken on 18 July 2018. The default concurrency level is 2. That means the collection can cope with up to two threads making simultaneous modifications without blocking. Note ConcurrentDictionary's default concurrency level is dynamic, scaling according to the number of processors. Taken from ConcurrentDictionary.DEFAULT_CAPACITY The backing dictionary. The values are never used; just the keys. Construct a concurrent set with the default concurrency level. Construct a concurrent set using the specified equality comparer. The equality comparer for values in the set. Construct a concurrent set using the specified the sequence. Obtain the number of elements in the set. The number of elements in the set. Determine whether the set is empty. true if the set is empty; otherwise, false. Determine whether the given value is in the set. The value to test. true if the set contains the specified value; otherwise, false. Attempts to add a value to the set. The value to add. true if the value was added to the set. If the value already exists, this method returns false. Add a sequence to the set. Attempts to remove a value from the set. The value to remove. true if the value was removed successfully; otherwise false. Clear the set enumerator for the keys. Obtain an enumerator that iterates through the elements in the set. An enumerator for the set. Anwsers questions from the local . Information about some portion of the DNS database. A subset of the DNS database. Typically (1) one or more zones or (2) a cache of received responses. Determines how multiple questions are answered. false to answer any of the questions. false to answer all of the questions. The default is false. Standard DNS specifies that only one of the questions need to be answered. Multicast DNS specifies that all the questions need to be answered. Get an answer to a question. The question to answer. Where the answers are added. If null, then a new is created. Is used to stop the task. When cancelled, the is raised. A task that represents the asynchronous operation. The task's value is a response to the . If the question's domain does not exist, then the closest authority () is added to the . Find an answer to the . The question to answer. Where the answers are added. Is used to stop the task. When cancelled, the is raised. A task that represents the asynchronous operation. The task's value is true if the resolver added an answer. Derived classes must implement this method. Add the DNSSEC resources for the resource record set. The set of resource records. Add the signature records (RRSIG) for each resource in the set. Locally held information on a domain name. The domain name system is distributed, only a portion of the database is available on each local host. The name of the node. An absolute (fully qualified) domain name. For example, "emanon.org". All must have a that matches this value. The resource records associated with this node. Commonly called the RRSET (resource record set). Duplicate resources are silently ignored. Indicates that the node's resources contains the complete information for the node. true if the are authoritative; otherwise, false. An Authoritative node is typically defined in a zone. Contains some information on the named resource. The contains the metadata on known resource records. When reading, if the registry does not contain the record, then an is used. The default time interval that a resource record maybe cached. Defaults to 1 day. The default time interval that a resource record containing a host name maybe cached. Defaults to 1 day. Host names are in A, AAAA, and HINFO records. An owner name, i.e., the name of the node to which this resource record pertains. The canonical form of the owner name. All uppercase US-ASCII letters in the are replaced by the corresponding lowercase US-ASCII letters. One of the RR TYPE codes. One of the RR CLASS codes. Defaults to . Specifies the time interval that the resource record may be cached before the source of the information should again be consulted. The resolution is 1 second. Defaults to 1 day. Zero values are interpreted to mean that the RR can only be used for the transaction in progress, and should not be cached. Determines if the has expired. The time to compare against. If null, the default value, then is used. true if the resource is no longer valid; otherwise false. The length of the resource specific data. Number of bytes to represent the resource specific data. This is referred to as the RDLENGTH in the DNS spec. The resource specific data. A byte array, never null. This is referred to as the RDATA in the DNS spec. Read the data that is specific to the resource record . The source of the resource record's data. The length, in bytes, of the data. Derived classes must implement this method. Write the data that is specific to the resource record . The destination for the DNS object's data. Derived classes must implement this method. Determines if the specified object is equal to the current object. The object to compare. true if the specified object is equal to the current object; otherwise, false. Two Resource Records are considered equal if their , , and data fields are equal. Note that the field is explicitly excluded from the comparison. Value equality. Two Resource Records are considered equal if their , , and data fields are equal. Note that the field is explicitly excluded from the comparison. Value inequality. Two Resource Records are considered equal if their , , and data fields are equal. Note that the field is explicitly excluded from the comparison. Returns the textual representation. The presentation format of this resource record. Write the textual representation of the data that is specific to the resource record. The destination for the resource record's data. Derived classes should implement this method. By default, this will write the hex encoding of the RDATA preceeded by "\#" and the number integer bytes. Create a new from the specified string. The presentation format. Read the textual representation of the data that is specific to the resource record . The source of the resource record's data. Derived classes must implement this method. Metadata on resource records. All the resource records. The key is the DNS Resource Record type, . The value is a function that returns a new . Register a new resource record. A derived class of . When RR TYPE is zero. Gets the resource record for the . One of the values. A new instance derived from . When the is not implemented, a new of is returned. The person responsible for a name. The responsible person identification to any name in the DNS. Creates a new instance of the class. The mailbox for the responsible person. Defaults to . The name of TXT records for the responsible person. Defaults to . Signature for a RRSET with a particular name, class, and type. Defined in RFC 4034 section 3. Creates a new instance of the class. The type of the RRset that is covered by this signature. One of the values. Identifies the cryptographic algorithm to create the . Identifies the type of key (RSA, ECDSA, ...) and the hashing algorithm. The number of labels in the original RRSIG RR owner name. The significance of this field is that a validator uses it to determine whether the answer was synthesized from a wildcard. The TTL of the covered RRset as it appears in the authoritative zone. The resolution is 1 second. The end date for the . The resolution is 1 second. The start date for the . The resolution is 1 second. The key tag of the that validates the . The method produces this value. The owner name of the that validates the . The cryptographic signature. The format depends upon the . Identities the security algorithm used by DNSSEC resource records. The values are maintained by IANA at Implemented security algorithms are obtained from the . Delete DS RSA/MD5 (deprecated) Must not be implemented according to RFC 6944. Diffie-Hellman DSA/SHA1 RSA/SHA-1 DSA-NSEC3-SHA1 RSASHA1-NSEC3-SHA1 RSA/SHA-256 RSA/SHA-512 GOST R 34.10-2001 ECDSA Curve P-256 with SHA-256 ECDSA Curve P-384 with SHA-384 Ed25519 Ed448 Indirect Keys Private algorithm Private algorithm OID Registry of implemented . IANA maintains a list of all known types at . Metadata on a . Used by the . The cryptographic hash algorithm to use. Other names associated with the algorithm. Defined security algorithms. The key is the . The value is th . Gets the meta data for the the . One of the values. The for the . When the is not defined. Marks the start of a zone of authority. Most of these fields are pertinent only for name server maintenance operations. However, MINIMUM is used in all query operations that retrieve RRs from a zone.Whenever a RR is sent in a response to a query, the TTL field is set to the maximum of the TTL field from the RR and the MINIMUM field in the appropriate SOA.Thus MINIMUM is a lower bound on the TTL field for all RRs in a zone.Note that this use of MINIMUM should occur when the RRs are copied into the response and not when the zone is loaded from a master file or via a zone transfer. The reason for this provison is to allow future dynamic update facilities to change the SOA RR with known semantics. Creates a new instance of the class. Sets to zero. The domain-name of the name server that was the original or primary source of data for this zone. A domain-name which specifies the mailbox of the person responsible for this zone. The unsigned 32 bit version number of the original copy of the zone. Zone transfers preserve this value. This value wraps and should be compared using sequence space arithmetic. Interval before the zone should be refreshed. interval that should elapse before a failed refresh should be retried. Specifies the upper limit on the time interval that can elapse before the zone is no longer authoritative. Minimum TTL field that should be exported with any RR from this zone. Allows administrators to use several servers for a single domain. Creates a new instance of the class. The priority of this target host. A client MUST attempt to contact the target host with the lowest-numbered priority it can reach; target hosts with the same priority SHOULD be tried in an order defined by the weight field.The range is 0-65535. A server selection mechanism. The weight field specifies a relative weight for entries with the same priority.Larger weights SHOULD be given a proportionately higher probability of being selected. The port on this target host of this service. The domain name of the target host. There MUST be one or more address records for this name, the name MUST NOT be an alias (in the sense of RFC 1034 or RFC 2181). Shared secret key. Defined in RFC 2930. Creates a new instance of the class. Identifies the cryptographic algorithm to create. Identifies the HMAC alogirthm. The algorithm determines how the secret keying material agreed to using the TKEY RR is actually used to derive the algorithm specific key. The start date for the . Resolution in seconds. The end date for the . Resolution in seconds. The key exchange algorithm. One of the values. Expanded error code for TKEY. The key exchange data. The format depends on the . Other data. Transaction Signature. Defined in RFC 2845. The name for HMACMD5. The name for GSSTSIG. The name for HMACSHA1. The name for HMACSHA224. The name for HMACSHA256. The name for HMACSHA384. The name for HMACSHA512. Creates a new instance of the class. Identifies the cryptographic algorithm to create the . Identifies the HMAC alogirthm. When the record was signed. Must be in . Resolution in seconds. Defaults to less the milliseconds. The message authentication code. The format depends on the . See Protocol Operation for details on generating the MAC. Permitted error in . Defaults to 300 seconds. The Original . Expanded error code for TSIG. , or . Other data. Text strings. TXT RRs are used to hold descriptive text. The semantics of the text depends on the domain where it is found. Creates a new instance of the class. The sequence of strings. An unknown EDNS option. When an is read with a that is not registered, then this is used to deserialise the information. Specfic data for the option. An unknown resource record. Specfic data for the resource. Dynamic updates in the Domain Name System. RFC 2136 allows adding or deleting resource records from a specified zone. are specified separately from update operations, and can specify a dependency upon either the previous existence or nonexistence of an RRset, or the existence of a single RR. An update is atomic, i.e., all prerequisites must be satisfied or else no update operations will take place. There are no data dependent error conditions defined after the prerequisites have been met. A 16 bit identifier assigned by the program that generates any kind of update. A unique identifier assigned by the requestor. This identifier is copied to the corresponding response and can be used by the requestor to match up replies to outstanding queries. Determines if the message is a request or a response. 0 if the message is a request or 1 if the message is a response. Determines if the message is an update. true if is false. Determines if the message is a response to an update. true if is true. The kind of message. Defaults to . Reserved for future use. Must be zero in all updates and responses. Must be zero. Response code - this 4 bit field is set as part of responses. One of the values. The zone to update. Defaults to the empty zone. is null, is and is SOA (6). Resource records which must (not) preexist. Defaults to an empty list. Resource records to be added or deleted. Defaults to an empty list. The list of additional resource records. Defaults to an empty list. The resources which are related to the update itself, or to new resources being added by the update. For example, out of zone glue (A RRs referred to by new NS RRs) should be presented here. The server can use or ignore out of zone glue, at the discretion of the server implementor. Create a response for the update message. Preconditions for a update. The list of resource records which must be satisfied before an can proceed. MustExist and MustNotExist are convenience methods to create the various preconditions. At least one resource record with the specified name and type must exist in the . A resource name. One of the RR TYPE codes. The prerequisite list to allow fluent usage. For this prerequisite, a requestor adds to the section a single RR whose NAME and TYPE are equal to that of the zone RRset whose existence is required. RDLENGTH is zero and RDATA is therefore empty. CLASS must be specified as ANY to differentiate this condition from that of an actual RR whose RDLENGTH is naturally zero (0) (e.g., NULL). TTL is specified as zero(0). At least one resource record with the specified name must exist in the . A resource name. The prerequisite list to allow fluent usage. For this prerequisite, a requestor adds to the section a single RR whose NAME is equal to that of the name whose ownership of an RR is required. RDLENGTH is zero and RDATA is therefore empty. CLASS must be specified as ANY to differentiate this condition from that of an actual RR whose RDLENGTH is naturally zero (0) (e.g., NULL). TYPE must be specified as ANY to differentiate this case from that of an RRset existence test. TTL is specified as zero (0). At least one resource record with the specified name and type must exist in the . A derived class of . A resource name. The prerequisite list to allow fluent usage. For this prerequisite, a requestor adds to the section a single RR whose NAME is equal to that of the name whose ownership of an RR is required. RDLENGTH is zero and RDATA is therefore empty. CLASS must be specified as ANY to differentiate this condition from that of an actual RR whose RDLENGTH is naturally zero (0) (e.g., NULL). TYPE must be specified as ANY to differentiate this case from that of an RRset existence test. TTL is specified as zero (0). A resource record exists with the specified NAME, TYPE and RDATA. A resource record. The prerequisite list to allow fluent usage. For this prerequisite, a requestor adds to the section an entire RRset whose preexistence is required. NAME and TYPE are that of the RRset being denoted. CLASS is that of the zone. TTL must be specified as zero (0) and is ignored when comparing RRsets for identity. No resource record with the specified name and type can exist in the . A resource name. One of the RR TYPE codes. The prerequisite list to allow fluent usage. For this prerequisite, a requestor adds to the section a single RR whose NAME and TYPE are equal to that of the RRset whose nonexistence is required. The RDLENGTH of this record is zero (0), and RDATA field is therefore empty. CLASS must be specified as NONE in order to distinguish this condition from a valid RR whose RDLENGTH is naturally zero (0) (for example, the NULL RR). TTL must be specified as zero(0). No resource record with the specified name can exist in the . A resource name. The prerequisite list to allow fluent usage. For this prerequisite, a requestor adds to the section a single RR whose NAME is equal to that of the name whose nonownership of any RRs is required. RDLENGTH is zero and RDATA is therefore empty. CLASS must be specified as NONE. TYPE must be specified as ANY. TTL must be specified as zero (0). No resource record with the specified name and type can exist in the . A derived class of . A resource name. The prerequisite list to allow fluent usage. For this prerequisite, a requestor adds to the section a single RR whose NAME and TYPE are equal to that of the RRset whose nonexistence is required. The RDLENGTH of this record is zero (0), and RDATA field is therefore empty. CLASS must be specified as NONE in order to distinguish this condition from a valid RR whose RDLENGTH is naturally zero (0) (for example, the NULL RR). TTL must be specified as zero(0). Resource records to add or delete from the zone. The list of resource records which are adde or deleted from the . AddResource and DeleteResource are convenience methods to specify the update operations. Add the resource to the zone. The to add to the zone. The update resource list to allow fluent usage. Equivalent to . A duplicate will be silently ignored by the primary master. Delete the resource record from the zone. The to delete from the zone. The update resource list to allow fluent usage. The NAME, TYPE, RDLENGTH and RDATA must match the RR being deleted. TTL must be specified as zero(0) and will otherwise be ignored by the primary master. CLASS must be specified as NONE to distinguish this from an RR addition. If no such RRsets exist, then this Update RR will be silently ignored by the primary master. Delete the resource records with the specifified name. A resource name. The update resource list to allow fluent usage. TYPE must be specified as ANY. TTL must be specified as zero(0) and is otherwise not used by the primary master. CLASS must be specified as ANY. RDLENGTH must be zero(0) and RDATA must therefore be empty. If no such RRsets exist, then this Update RR will be silently ignored by the primary master. Delete the resource records with the specifified name and type. A resource name. One of the RR TYPE codes. The update resource list to allow fluent usage. TTL must be specified as zero(0) and is otherwise not used by the primary master. CLASS must be specified as ANY. RDLENGTH must be zero(0) and RDATA must therefore be empty. If no such RRsets exist, then this Update RR will be silently ignored by the primary master. Delete the resource records with the specifified name and type. A resource name. A derived class of . The update resource list to allow fluent usage. TTL must be specified as zero(0) and is otherwise not used by the primary master. CLASS must be specified as ANY. RDLENGTH must be zero(0) and RDATA must therefore be empty. If no such RRsets exist, then this Update RR will be silently ignored by the primary master. Methods to read DNS wire formatted data items. The reader relative position within the stream. Creates a new instance of the on the specified . The source for data items. Read a byte. The next byte in the stream. When no more data is available. Read the specified number of bytes. The number of bytes to read. The next bytes in the stream. When no more data is available. Read the bytes with a byte length prefix. The next N bytes. Read the bytes with an uint16 length prefix. The next N bytes. Read an unsigned short. The two byte little-endian value as an unsigned short. When no more data is available. Read an unsigned int. The four byte little-endian value as an unsigned int. When no more data is available. Read an unsigned long from 48 bits. The six byte little-endian value as an unsigned long. When no more data is available. Read a domain name. The domain name. When no more data is available. Only ASCII characters are allowed. A domain name is represented as a sequence of labels, where each label consists of a length octet followed by that number of octets. The domain name terminates with the zero length octet for the null label of the root. Compressed domain names are also supported. Read a string. Strings are encoded with a length prefixed byte. All strings are ASCII. The string. When no more data is available. Only ASCII characters are allowed. Read a time span (interval) with 16-bits. A with second resolution. When no more data is available. The interval is represented as the number of seconds in two bytes. Read a time span (interval) with 32-bits. A with second resolution. When no more data is available. The interval is represented as the number of seconds in four bytes. Read an Internet address. An . When no more data is available. Use a of 4 to read an IPv4 address and 16 to read an IPv6 address. Reads a bitmap. The sequence of values encoded by the bitmap. for the encoding details. Read a that is represented in seconds (32 bits) from the Unix epoch. A in . When no more data is available. Read a that is represented in seconds (48 bits) from the Unix epoch. A in . When no more data is available. Methods to write DNS wire formatted data items. The writer relative position within the stream. Creates a new instance of the on the specified . The destination for data items. Determines if canonical records are produced. true to produce canonical records; otherwise false. Defaults to false. When enabled, the following rules are applied Domain names are uncompressed Domain names are converted to US-ASCII lowercase Start a length prefixed stream. A memory stream is created for writing. When it is popped, the memory stream's position is writen as an UInt16 and its contents are copied to the current stream. Start a length prefixed stream. A memory stream is created for writing. When it is popped, the memory stream's position is writen as an UInt16 and its contents are copied to the current stream. Write a byte. Write a sequence of bytes. A sequence of bytes to write. Write a sequence of bytes prefixed with the length as a byte. A sequence of bytes to write. When the length is greater than . Write a sequence of bytes prefixed with the length as a unint16. A sequence of bytes to write. When the length is greater than . Write an unsigned short. Write an unsigned int. Write an unsigned long in 48 bits. Write a domain name. The name to write. Determines if the must be uncompressed. The defaultl is false (allow compression). overrides this value. When a label length is greater than 63 octets. A domain name is represented as a sequence of labels, where each label consists of a length octet followed by that number of octets.The domain name terminates with the zero length octet for the null label of the root. Note that this field may be an odd number of octets; no padding is used. Write a domain name. The name to write. Determines if the must be uncompressed. The defaultl is false (allow compression). overrides this value. When a label length is greater than 63 octets. A domain name is represented as a sequence of labels, where each label consists of a length octet followed by that number of octets.The domain name terminates with the zero length octet for the null label of the root. Note that this field may be an odd number of octets; no padding is used. Write a string. When the length is greater than or the string is not ASCII. Strings are encoded with a length prefixed byte. All strings must be ASCII. Write a time span with 16-bits. The number of non-negative seconds. The interval is represented as the number of seconds in two bytes. Write a time span with 32-bits. The number of non-negative seconds. The interval is represented as the number of seconds in four bytes. Write a date/time. The in UTC to write. seconds cannot be represented in 32 bits. Write the as the number seconds since the Unix epoch. The seconds is represented as 32-bit unsigned int Write a date/time. The in UTC to write. seconds cannot be represented in 48 bits. Write the as the number seconds since the Unix epoch. The seconds is represented as 48-bit unsigned int Write an IP address. Write the bitmap(s) for the values. The sequence of values to encode into a bitmap.