Constantes DNS

As constantes a seguir são definidas para DNS na ordem de bytes do host.

Tipos de registro DNS

Constante Valor
DNS_TYPE_A 0x0001
DNS_TYPE_NS 0x0002
DNS_TYPE_MD 0x0003
DNS_TYPE_MF 0x0004
DNS_TYPE_CNAME 0x0005
DNS_TYPE_SOA 0x0006
DNS_TYPE_MB 0x0007
DNS_TYPE_MG 0x0008
DNS_TYPE_MR 0x0009
DNS_TYPE_NULL 0x000a
DNS_TYPE_WKS 0x000b
DNS_TYPE_PTR 0x000c
DNS_TYPE_HINFO 0x000d
DNS_TYPE_MINFO 0x000e
DNS_TYPE_MX 0x000f
DNS_TYPE_TEXT 0x0010
DNS_TYPE_RP 0x0011
DNS_TYPE_AFSDB 0x0012
DNS_TYPE_X25 0x0013
DNS_TYPE_ISDN 0x0014
DNS_TYPE_RT 0x0015
DNS_TYPE_NSAP 0x0016
DNS_TYPE_NSAPPTR 0x0017
DNS_TYPE_SIG 0x0018
DNS_TYPE_KEY 0x0019
DNS_TYPE_PX 0x001a
DNS_TYPE_GPOS 0x001b
DNS_TYPE_AAAA 0x001c
DNS_TYPE_LOC 0x001d
DNS_TYPE_NXT 0x001e
DNS_TYPE_EID 0x001f
DNS_TYPE_NIMLOC 0x0020
DNS_TYPE_SRV 0x0021
DNS_TYPE_ATMA 0x0022
DNS_TYPE_NAPTR 0x0023
DNS_TYPE_KX 0x0024
DNS_TYPE_CERT 0x0025
DNS_TYPE_A6 0x0026
DNS_TYPE_DNAME 0x0027
DNS_TYPE_SINK 0x0028
DNS_TYPE_OPT 0x0029
DNS_TYPE_DS 0x002B
DNS_TYPE_RRSIG 0x002E
DNS_TYPE_NSEC 0x002F
DNS_TYPE_DNSKEY 0x0030
DNS_TYPE_DHCID 0x0031
DNS_TYPE_UINFO 0x0064
DNS_TYPE_UID 0x0065
DNS_TYPE_GID 0x0066
DNS_TYPE_UNSPEC 0x0067
DNS_TYPE_ADDRS 0x00f8
DNS_TYPE_TKEY 0x00f9
DNS_TYPE_TSIG 0x00fa
DNS_TYPE_IXFR 0x00fb
DNS_TYPE_AXFR 0x00fc
DNS_TYPE_MAILB 0x00fd
DNS_TYPE_MAILA 0x00fe
DNS_TYPE_ALL 0x00ff
DNS_TYPE_ANY 0x00ff
DNS_TYPE_WINS 0xff01
DNS_TYPE_WINSR 0xff02
DNS_TYPE_NBSTAT DNS_TYPE_WINSR

Tipos de classe DNS

Constante Valor
DNS_CLASS_INTERNET 0x0001
DNS_CLASS_CSNET 0x0002
DNS_CLASS_CHAOS 0x0003
DNS_CLASS_HESIOD 0x0004
DNS_CLASS_NONE 0x00fe
DNS_CLASS_ALL 0x00ff
DNS_CLASS_ANY 0x00ff

Tipos de consulta DNS

Constante Valor
DNS_OPCODE_QUERY 0x0000
DNS_OPCODE_IQUERY 0x0001
DNS_OPCODE_SERVER_STATUS 0x0002
DNS_OPCODE_UNKNOWN 0x0003
DNS_OPCODE_NOTIFY 0x0004
DNS_OPCODE_UPDATE 0x0005

Sinalizadores de registro DNS

Os sinalizadores a seguir referem-se à seção de um registro de recurso (RR) dentro de uma mensagem DNS:

Constante Valor Significado
DNSREC_QUESTION 0x00000000 RR está na seção de pergunta
DNSREC_ANSWER 0x00000001 RR está na seção de resposta
DNSREC_AUTHORITY 0x00000002 RR está na seção de autoridade
DNSREC_ADDITIONAL 0x00000003 RR está na seção adicional

Os sinalizadores a seguir referem-se à seção de um RR dentro de uma mensagem DNS de atualização por RFC 2136:

Constante Valor Significado
DNSREC_ZONE 0x00000000 RR está na seção zona
DNSREC_PREREQ 0x00000001 O RR está na seção de pré-requisitos
DNSREC_UPDATE 0x00000002 O RR está na seção de atualização

Os seguintes sinalizadores são mutuamente exclusivos:

Constante Valor Significado
DNSREC_DELETE 0x00000004 Exclua um RR. Usado em conjunto com DNSREC_UPDATE
DNSREC_NOEXIST 0x00000004 RR não existe. Usado em conjunto com DNSREC_PREREQ

Opções de consulta DNS

Constante Valor Significado
DNS_QUERY_STANDARD 0x00000000 Consulta padrão.
DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x00000001 Retorna resultados truncados. Não tenta novamente em TCP.
DNS_QUERY_USE_TCP_ONLY 0x00000002 Usa TCP somente para a consulta.
DNS_QUERY_NO_RECURSION 0x00000004 Direciona o servidor DNS para executar uma consulta iterativa (direciona especificamente o servidor DNS a não executar resolução recursiva para resolve a consulta).
DNS_QUERY_BYPASS_CACHE 0x00000008 Ignora o cache resolvedor na pesquisa.
DNS_QUERY_NO_WIRE_QUERY 0x00000010 Direciona o DNS para executar uma consulta somente no cache local. Windows 2000 Server e Windows 2000 Professional: Não há suporte para esse valor. Para uma funcionalidade semelhante, use DNS_QUERY_CACHE_ONLY.
DNS_QUERY_NO_LOCAL_NAME 0x00000020 Direciona o DNS para ignorar o nome local. Windows 2000 Server e Windows 2000 Professional: Não há suporte para esse valor.
DNS_QUERY_NO_HOSTS_FILE 0x00000040 Impede que a consulta DNS consulte o arquivo HOSTS. Windows 2000 Server e Windows 2000 Professional: Não há suporte para esse valor.
DNS_QUERY_NO_NETBT 0x00000080 Impede que a consulta DNS use o NetBT para resolução. Windows 2000 Server e Windows 2000 Professional: Não há suporte para esse valor.
DNS_QUERY_WIRE_ONLY 0x00000100 Direciona o DNS para executar uma consulta usando apenas a rede, ignorando as informações locais. Windows 2000 Server e Windows 2000 Professional: Não há suporte para esse valor.
DNS_QUERY_RETURN_MESSAGE 0x00000200 Direciona o DNS para retornar toda a mensagem de resposta DNS. Windows 2000 Server e Windows 2000 Professional: Não há suporte para esse valor.
DNS_QUERY_MULTICAST_ONLY 0x00000400 Impede que a consulta use DNS e usa apenas LLMNR (Resolução de Nomes multicast de Link Local). Windows Vista e Windows Server 2008 ou posterior.: Há suporte para esse valor.
DNS_QUERY_NO_MULTICAST 0x00000800
DNS_QUERY_TREAT_AS_FQDN 0x00001000 Impede que a resposta DNS anexe sufixos ao nome enviado em um processo de resolução de nomes.
DNS_QUERY_ADDRCONFIG 0x00002000 Somente Windows 7: não envie consultas de tipo A se os endereços IPv4 não estiverem disponíveis em uma interface e não enviarem consultas de tipo AAAA se os endereços IPv6 não estiverem disponíveis.
DNS_QUERY_DUAL_ADDR 0x00004000 Somente Windows 7: consultar registros de tipo AAAA e A e retornar resultados para cada um. Os resultados de registros de tipo A são mapeados para o tipo AAAA .
DNS_QUERY_MULTICAST_WAIT 0x00020000 Aguarda um tempo limite completo para coletar todas as respostas do Link Local. Se não estiver definido, o comportamento padrão será retornar com a primeira resposta. Windows Vista e Windows Server 2008 ou posterior.: Há suporte para esse valor.
DNS_QUERY_MULTICAST_VERIFY 0x00040000 Direciona um teste usando o nome do host do computador local para verificar a exclusividade do nome no mesmo Link Local. Coleta todas as respostas mesmo que o comportamento normal do Remetente LLMNR não esteja habilitado. Windows Vista e Windows Server 2008 ou posterior.: Há suporte para esse valor.
DNS_QUERY_DONT_RESET_TTL_VALUES 0x00100000 Se definido e se a resposta contiver vários registros, os registros serão armazenados com o TTL correspondente ao valor mínimo TTL entre todos os registros. Quando essa opção é definida, "Não altere o TTL de registros individuais" no conjunto de registros retornado não é modificado.
DNS_QUERY_DISABLE_IDN_ENCODING 0x00200000 Desabilita o suporte à codificação de IDN (Nome de Domínio Internacional) nas APIs DnsQuery, DnsQueryEx, DnsModifyRecordsInSet e DnsReplaceRecordSet . Todos os nomes de punycode são tratados como ASCII e serão codificados como ASCII na transmissão. Todos os nomes não ASCII são codificados em UTF8 na transmissão. Windows 8 ou posterior.: Há suporte para esse valor.
DNS_QUERY_APPEND_MULTILABEL 0x00800000
DNS_QUERY_RESERVED 0xf0000000 Reservado.

Opções de atualização de DNS

Constante Valor Significado
DNS_UPDATE_SECURITY_USE_DEFAULT 0x00000000 Usa o comportamento padrão, que é especificado no registro, para atualizações DNS dinâmicas seguras.
DNS_UPDATE_SECURITY_OFF 0x00000010 Não tenta proteger atualizações dinâmicas.
DNS_UPDATE_SECURITY_ON 0x00000020 Tenta uma atualização dinâmica não segura; se recusado, tenta proteger a atualização dinâmica.
DNS_UPDATE_SECURITY_ONLY 0x00000100 Tenta proteger somente atualizações dinâmicas.
DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x00000200 Armazena em cache o contexto de segurança para uso em transações futuras.
DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x00000400 Usa credenciais da conta de computador local.
DNS_UPDATE_FORCE_SECURITY_NEGO 0x00000800 Não usa o contexto de segurança armazenado em cache.
DNS_UPDATE_TRY_ALL_MASTER_SERVERS 0x00001000 Envia atualizações de DNS para todos os servidores DNS de várias master.
DNS_UPDATE_SKIP_NO_UPDATE_ADAPTERS 0x00002000 Não atualize os adaptadores em que as atualizações DNS dinâmicas estão desabilitadas. Windows 2000 Server com SP2 ou posterior.: Há suporte para esse valor.
DNS_UPDATE_REMOTE_SERVER 0x00004000 Registre registros CNAME em um servidor remoto, além do servidor DNS local. Windows 2000 Server com SP2 ou posterior.: Há suporte para esse valor.
DNS_UPDATE_RESERVED 0xffff0000 Reservado para uso futuro.

Códigos de resposta DNS

Erro do Significado
DNS_RCODE_NOERROR Nenhum erro
DNS_RCODE_FORMERR Erro de formato
DNS_RCODE_SERVFAIL Falha do servidor
DNS_RCODE_NXDOMAIN Erro de nome
DNS_RCODE_NOTIMPL Não implementado
DNS_RCODE_REFUSED Conexão recusada
DNS_RCODE_YXDOMAIN O nome de domínio não deve existir
DNS_RCODE_YXRRSET O conjunto de RR (Registro de Recurso) não deve existir
DNS_RCODE_NXRRSET O conjunto de RR não existe
DNS_RCODE_NOTAUTH Não autoritativo para zona
DNS_RCODE_NOTZONE Nome não na zona
DNS_RCODE_BADVERS Versão do EDNS (Mecanismo de Extensão Inválida para DNS)
DNS_RCODE_BADSIG Assinatura incorreta
DNS_RCODE_BADKEY Tecla inválido
DNS_RCODE_BADTIME Carimbo de data/hora ruim

Protocolos DNS

Constante Valor Significado
DNS_PROTOCOL_UNSPECIFIED 0
DNS_PROTOCOL_UDP 1
DNS_PROTOCOL_TCP 2
DNS_PROTOCOL_DOH 3
DNS_PROTOCOL_DOT 4
DNS_PROTOCOL_NO_WIRE 5

Outras constantes

Constante Valor Significado
DNS_QUERY_RAW_RESULTS_VERSION1 0x1
DNS_QUERY_RAW_REQUEST_VERSION1 0x1
DNS_QUERY_RAW_OPTION_BEST_EFFORT_PARSE 0x1