DNS 常量

以下常量按主机字节顺序为 DNS 定义。

DNS 记录类型

恒定的
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 (DNS密钥类型) 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

DNS 类类型

恒定的
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

DNS 查询类型

恒定的
DNS_OPCODE_QUERY 0x0000
DNS_OPCODE_IQUERY 0x0001
DNS_OPCODE_SERVER_STATUS 0x0002
DNS 操作代码未知 (DNS_OPCODE_UNKNOWN) 0x0003
DNS_OPCODE_NOTIFY 0x0004
DNS_OPCODE_UPDATE 0x0005

DNS 记录标记

以下标记引用 DNS 消息中的资源记录 (RR) 部分:

恒定 意义
DNSREC_QUESTION 0x00000000 RR 位于问题部分
DNSREC_ANSWER 0x00000001 RR 位于答案部分中
DNSREC_AUTHORITY 0x00000002 RR 位于颁发机构部分
DNSREC_ADDITIONAL 0x00000003 RR 位于附加部分中

以下标志根据 RFC 2136 引用更新 DNS 消息中的 RR 部分:

恒定 意义
DNSREC_ZONE 0x00000000 RR 位于区域部分中
DNSREC_PREREQ 0x00000001 RR 位于先决条件部分中
DNSREC_UPDATE 0x00000002 RR 位于更新部分中

以下标志是互斥的:

恒定的 意义
DNSREC_DELETE 0x00000004 删除 RR。 与DNSREC_UPDATE结合使用
DNSREC_NOEXIST 0x00000004 RR 不存在。 与DNSREC_PREREQ结合使用

DNS 查询选项

恒定 意义
DNS_QUERY_STANDARD 0x00000000 标准查询。
DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x00000001 返回截断的结果。 不要在 TCP 下重试。
DNS_QUERY_USE_TCP_ONLY 0x00000002 仅对查询使用 TCP。
DNS_QUERY_NO_RECURSION 0x00000004 指示 DNS 服务器执行迭代查询(具体指示 DNS 服务器不执行递归解析来解析查询)。
DNS_QUERY_BYPASS_CACHE 0x00000008 绕过查找时的 解析程序 缓存。
DNS_QUERY_NO_WIRE_QUERY 0x00000010 指示 DNS 仅对本地缓存执行查询。Windows 2000 Server 和 Windows 2000 Professional:不支持 此值。 对于类似的功能,请使用 DNS_QUERY_CACHE_ONLY
DNS_QUERY_NO_LOCAL_NAME 0x00000020 指示 DNS 忽略本地名称。Windows 2000 Server 和 Windows 2000 Professional:不支持 此值。
DNS_QUERY_NO_HOSTS_FILE 0x00000040 阻止 DNS 查询查阅 HOSTS 文件。Windows 2000 Server 和 Windows 2000 Professional:不支持此值。
DNS_QUERY_NO_NETBT 0x00000080 防止 DNS 查询使用 NetBT 进行解析。Windows 2000 Server 和 Windows 2000 Professional: 此值不受支持。
DNS_QUERY_WIRE_ONLY 0x00000100 指示 DNS 仅使用网络执行查询,绕过本地信息。Windows 2000 Server 和 Windows 2000 Professional:不支持 此值。
DNS_QUERY_RETURN_MESSAGE 0x00000200 指示 DNS 返回整个 DNS 响应消息。Windows 2000 Server 和 Windows 2000 Professional:不支持 此值。
DNS_QUERY_MULTICAST_ONLY 0x00000400 阻止查询使用 DNS,并且仅使用链路本地多播名称解析 (LLMNR)。Windows Vista 和 Windows Server 2008 或更高版本: 支持此值。
DNS_QUERY_NO_MULTICAST 0x00000800
DNS_QUERY_TREAT_AS_FQDN 0x00001000 防止 DNS 响应在名称解析过程中将后缀附加到提交的名称。
DNS_QUERY_ADDRCONFIG 0x00002000 仅限 Windows 7:如果 IPv4 地址在接口上不可用, 则不要发送 类型查询;如果 IPv6 地址不可用,则不要发送 AAAA 类型查询。
DNS_QUERY_DUAL_ADDR 0x00004000 仅限 Windows 7:查询 AAAAA 类型记录,并为每个返回结果。 A 类型记录的结果将映射到 AAAA 类型。
DNS_QUERY_MULTICAST_WAIT 0x00020000 等待完全超时以收集来自本地链接的所有响应。 如果未设置,默认行为是返回第一个响应。Windows Vista 和 Windows Server 2008 或更高版本。 支持此值。
DNS_QUERY_MULTICAST_VERIFY 0x00040000 使用本地计算机主机名指导测试,以验证同一本地链接上的名称唯一性。 收集所有响应,即使未启用正常的 LLMNR 发送方行为。Windows Vista 和 Windows Server 2008 或更高版本。 支持此值。
DNS_QUERY_DONT_RESET_TTL_VALUES 0x00100000 如果已设置该选项,并且响应包含多个记录,则记录将使用与所有记录中的最小值 TTL 对应的 TTL 进行存储。 设置该选项后,返回的记录集中的“不要更改单个记录的 TTL”状态不会被修改。
DNS_QUERY_DISABLE_IDN_ENCODING 0x00200000 DnsQueryDnsQueryExDnsModifyRecordsInSetDnsReplaceRecordSet API 中禁用国际域名(IDN)编码支持。 所有 Punycode 名称都被视为 ASCII,并将在网络传输时进行 ASCII 编码。 所有非 ASCII 名称均通过网络以 UTF8 编码。 Windows 8 或更高版本。 此值受支持。
DNS_QUERY_APPEND_MULTILABEL 0x00800000
DNS_QUERY_RESERVED 0xf0000000 保留。

DNS 更新选项

恒定 意义
DNS_UPDATE_SECURITY_USE_DEFAULT 0x00000000 使用注册表中指定的默认行为来保护动态 DNS 更新。
DNS_UPDATE_SECURITY_OFF 0x00000010 不尝试安全动态更新。
DNS_UPDATE_SECURITY_ON 0x00000020 尝试非安全的动态更新;如果被拒绝,则尝试安全动态更新。
DNS_UPDATE_SECURITY_ONLY 0x00000100 仅尝试进行安全的动态更新。
DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x00000200 缓存安全上下文以供将来的事务使用。
DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x00000400 使用本地计算机帐户的凭据。
DNS_UPDATE_FORCE_SECURITY_NEGO 0x00000800 不使用缓存的安全上下文。
DNS_UPDATE_TRY_ALL_MASTER_SERVERS 0x00001000 向所有多主 DNS 服务器发送 DNS 更新。
DNS_UPDATE_SKIP_NO_UPDATE_ADAPTERS 0x00002000 不要更新禁用动态 DNS 更新的适配器。具有 SP2 或更高版本的 Windows 2000 Server。 支持此值。
DNS_UPDATE_REMOTE_SERVER 0x00004000 除了本地 DNS 服务器之外,在远程服务器上注册 CNAME 记录。具有 SP2 或更高版本的 Windows 2000 Server。 支持此值。
DNS_UPDATE_RESERVED 0xffff0000 保留以供将来使用。

DNS 响应代码

错误 意义
DNS_RCODE_NOERROR 无错误
DNS_RCODE_FORMERR 格式错误
DNS_RCODE_SERVFAIL 服务器故障
DNS_RCODE_NXDOMAIN 名称错误
DNS_RCODE_NOTIMPL 未实现
DNS_RCODE_REFUSED 连接被拒绝
DNS_RCODE_YXDOMAIN 域名不应存在
DNS_RCODE_YXRRSET 资源记录 (RR) 集不应存在
DNS_RCODE_NXRRSET RR 集不存在
DNS_RCODE_NOTAUTH 对区域不具有权威性
DNS_RCODE_NOTZONE 名称不在区域中
DNS_RCODE_BADVERS DNS (EDNS) 版本的扩展机制错误
DNS_RCODE_BADSIG 签名错误
DNS_RCODE_BADKEY 无效密钥
DNS_RCODE_BADTIME 时间戳错误

DNS 协议

恒定 意义
DNS_PROTOCOL_UNSPECIFIED(DNS协议未指定) 0
DNS 协议 (UDP) 1
DNS_PROTOCOL_TCP 2
DNS_PROTOCOL_DOH 3
DNS_PROTOCOL_DOT 4
DNS_PROTOCOL_NO_WIRE 5

其他常量

恒定的 意义
DNS_QUERY_RAW_RESULTS_VERSION1 0x1
DNS_QUERY_RAW_REQUEST_VERSION1 0x1
DNS_QUERY_RAW_OPTION_BEST_EFFORT_PARSE 0x1