# Unit dnssend

Description | uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables

## Description

DNS client by UDP or TCP

Support for sending DNS queries by UDP or TCP protocol. It can retrieve zone transfers too!

Used RFC: RFC-1035, RFC-1183, RFC1706, RFC1712, RFC2163, RFC2230

## uses

- SysUtils
- Classes
- blcksock
- synautil
- synaip
- synsock

## Overview

### Classes, Interfaces, Objects and Records

Name | Description
--- | ---
Class `TDNSSend` | Implementation of DNS protocol by UDP or TCP protocol.

### Functions and Procedures

`function GetMailServers(const DNSHost, Domain: AnsiString; const Servers: TStrings): Boolean;`

### Constants

`cDnsProtocol = '53';`
`QTYPE_A = 1;`
`QTYPE_NS = 2;`
`QTYPE_MD = 3;`
`QTYPE_MF = 4;`
`QTYPE_CNAME = 5;`
`QTYPE_SOA = 6;`
`QTYPE_MB = 7;`
`QTYPE_MG = 8;`
`QTYPE_MR = 9;`
`QTYPE_NULL = 10;`
`QTYPE_WKS = 11;`
`QTYPE_PTR = 12;`
`QTYPE_HINFO = 13;`
`QTYPE_MINFO = 14;`
`QTYPE_MX = 15;`
`QTYPE_TXT = 16;`
`QTYPE_RP = 17;`
`QTYPE_AFSDB = 18;`
`QTYPE_X25 = 19;`
`QTYPE_ISDN = 20;`
`QTYPE_RT = 21;`
`QTYPE_NSAP = 22;`
`QTYPE_NSAPPTR = 23;`
`QTYPE_SIG = 24;`
`QTYPE_KEY = 25;`
`QTYPE_PX = 26;`
`QTYPE_GPOS = 27;`
`QTYPE_AAAA = 28;`
`QTYPE_LOC = 29;`
`QTYPE_NXT = 30;`
`QTYPE_SRV = 33;`
`QTYPE_NAPTR = 35;`
`QTYPE_KX = 36;`
`QTYPE_SPF = 99;`
`QTYPE_AXFR = 252;`
`QTYPE_MAILB = 253;`
`QTYPE_MAILA = 254;`
`QTYPE_ALL = 255;`

## Description

### Functions and Procedures

`function GetMailServers(const DNSHost, Domain: AnsiString; const Servers: TStrings): Boolean;`

A very useful function, and example of it's use is found in the TDNSSend object. This function is used to get mail servers for a domain and sort them by preference numbers. "Servers" contains only the domain names of the mail servers in the right order (without preference number!). The first domain name will always be the highest preferenced mail server. Returns boolean `True` if all went well.

### Constants

`cDnsProtocol = '53';`

`QTYPE_A = 1;`

`QTYPE_NS = 2;`

`QTYPE_MD = 3;`

`QTYPE_MF = 4;`

`QTYPE_CNAME = 5;`

`QTYPE_SOA = 6;`

`QTYPE_MB = 7;`

`QTYPE_MG = 8;`

`QTYPE_MR = 9;`

`QTYPE_NULL = 10;`

`QTYPE_WKS = 11;`

`QTYPE_PTR = 12;`

`QTYPE_HINFO = 13;`

`QTYPE_MINFO = 14;`

`QTYPE_MX = 15;`

`QTYPE_TXT = 16;`

`QTYPE_RP = 17;`

`QTYPE_AFSDB = 18;`

`QTYPE_X25 = 19;`

`QTYPE_ISDN = 20;`

`QTYPE_RT = 21;`

`QTYPE_NSAP = 22;`

`QTYPE_NSAPPTR = 23;`

`QTYPE_SIG = 24;`

`QTYPE_KEY = 25;`

`QTYPE_PX = 26;`

`QTYPE_GPOS = 27;`

`QTYPE_AAAA = 28;`

`QTYPE_LOC = 29;`

`QTYPE_NXT = 30;`

`QTYPE_SRV = 33;`

`QTYPE_NAPTR = 35;`

`QTYPE_KX = 36;`

`QTYPE_SPF = 99;`

`QTYPE_AXFR = 252;`

`QTYPE_MAILB = 253;`

`QTYPE_MAILA = 254;`

`QTYPE_ALL = 255;`

Generated by PasDoc 0.9.0 on 2012-04-23 21:38:50