小白教程
所有教程
关于
Search
108.162.216.241
108.162.216.241
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Nodejs dns module”的源代码
本页内容
上一节:
Nodejs_net_module
下一节:
Nodejs_domain_module
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:DNS 模块}}[[Category:nodejs utitlity module|4]] = Node.js DNS 模块 = [[nodejs utitlity module|Node.js 工具模块]] Node.js '''DNS''' 模块用于解析域名。引入 DNS 模块语法格式如下: <pre> var dns = require("dns") </pre> == 方法 == {| class="table table-striped table-hover" ! 序号 ! 方法 & 描述 |- | 1 | '''dns.lookup(hostname[, options], callback)'''将域名(比如 'xiaobai.wang')解析为第一条找到的记录 A (IPV4)或 AAAA(IPV6)。参数 options可以是一个对象或整数。如果没有提供 options,IP v4 和 v6 地址都可以。如果 options 是整数,则必须是 4 或 6。 |- | 2 | '''dns.lookupService(address, port, callback)'''使用 getnameinfo 解析传入的地址和端口为域名和服务。 |- | 3 | '''dns.resolve(hostname[, rrtype], callback)'''将一个域名(如 'xiaobai.wang')解析为一个 rrtype 指定记录类型的数组。 |- | 4 | '''dns.resolve4(hostname, callback)'''和 dns.resolve() 类似, 仅能查询 IPv4 (A 记录)。 addresses IPv4 地址数组 (比如,['74.125.79.104', '74.125.79.105', '74.125.79.106'])。 |- | 5 | '''dns.resolve6(hostname, callback)'''和 dns.resolve4() 类似, 仅能查询 IPv6( AAAA 查询) |- | 6 | '''dns.resolveMx(hostname, callback)'''和 dns.resolve() 类似, 仅能查询邮件交换(MX 记录)。 |- | 7 | '''dns.resolveTxt(hostname, callback)'''和 dns.resolve() 类似, 仅能进行文本查询 (TXT 记录)。 addresses 是 2-d 文本记录数组。(比如,[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ])。 每个子数组包含一条记录的 TXT 块。根据使用情况可以连接在一起,也可单独使用。 |- | 8 | '''dns.resolveSrv(hostname, callback)'''和 dns.resolve() 类似, 仅能进行服务记录查询 (SRV 记录)。 addresses 是 hostname可用的 SRV 记录数组。 SRV 记录属性有优先级(priority),权重(weight), 端口(port), 和名字(name) (比如,[{'priority': 10, 'weight': 5, 'port': 21223, 'name': 'service.example.com'}, ...])。 |- | 9 | '''dns.resolveSoa(hostname, callback)'''和 dns.resolve() 类似, 仅能查询权威记录(SOA 记录)。 |- | 10 | '''dns.resolveNs(hostname, callback)'''和 dns.resolve() 类似, 仅能进行域名服务器记录查询(NS 记录)。 addresses 是域名服务器记录数组(hostname 可以使用) (比如, ['ns1.example.com', 'ns2.example.com'])。 |- | 11 | '''dns.resolveCname(hostname, callback)'''和 dns.resolve() 类似, 仅能进行别名记录查询 (CNAME记录)。addresses 是对 hostname 可用的别名记录数组 (比如,, ['bar.example.com'])。 |- | 12 | '''dns.reverse(ip, callback)'''反向解析 IP 地址,指向该 IP 地址的域名数组。 |- | 13 | '''dns.getServers()'''返回一个用于当前解析的 IP 地址数组的字符串。 |- | 14 | '''dns.setServers(servers)'''指定一组 IP 地址作为解析服务器。 |} === rrtypes === 以下列出了 dns.resolve() 方法中有效的 rrtypes值: * <code>'A'</code> IPV4 地址, 默认 * <code>'AAAA'</code> IPV6 地址 * <code>'MX'</code> 邮件交换记录 * <code>'TXT'</code> text 记录 * <code>'SRV'</code> SRV 记录 * <code>'PTR'</code> 用来反向 IP 查找 * <code>'NS'</code> 域名服务器记录 * <code>'CNAME'</code> 别名记录 * <code>'SOA'</code> 授权记录的初始值 == 错误码 == 每次 DNS 查询都可能返回以下错误码: * <code>dns.NODATA</code>: 无数据响应。 * <code>dns.FORMERR</code>: 查询格式错误。 * <code>dns.SERVFAIL</code>: 常规失败。 * <code>dns.NOTFOUND</code>: 没有找到域名。 * <code>dns.NOTIMP</code>: 未实现请求的操作。 * <code>dns.REFUSED</code>: 拒绝查询。 * <code>dns.BADQUERY</code>: 查询格式错误。 * <code>dns.BADNAME</code>: 域名格式错误。 * <code>dns.BADFAMILY</code>: 地址协议不支持。 * <code>dns.BADRESP</code>: 回复格式错误。 * <code>dns.CONNREFUSED</code>: 无法连接到 DNS 服务器。 * <code>dns.TIMEOUT</code>: 连接 DNS 服务器超时。 * <code>dns.EOF</code>: 文件末端。 * <code>dns.FILE</code>: 读文件错误。 * <code>dns.NOMEM</code>: 内存溢出。 * <code>dns.DESTRUCTION</code>: 通道被摧毁。 * <code>dns.BADSTR</code>: 字符串格式错误。 * <code>dns.BADFLAGS</code>: 非法标识符。 * <code>dns.NONAME</code>: 所给主机不是数字。 * <code>dns.BADHINTS</code>: 非法HINTS标识符。 * <code>dns.NOTINITIALIZED</code>: c c-ares 库尚未初始化。 * <code>dns.LOADIPHLPAPI</code>: 加载 iphlpapi.dll 出错。 * <code>dns.ADDRGETNETWORKPARAMS</code>: 无法找到 GetNetworkParams 函数。 * <code>dns.CANCELLED</code>: 取消 DNS 查询。 == 创建 main.js 文件,代码如下所示: <pre> var dns = require('dns'); dns.lookup('www.github.com', function onLookup(err, address, family) { console.log('ip 地址:', address); dns.reverse(address, function (err, hostnames) { if (err) { console.log(err.stack); } console.log('反向解析 ' + address + ': ' + JSON.stringify(hostnames)); }); }); </pre> 执行以上代码,结果如下所示: <pre> address: 192.30.252.130 reverse for 192.30.252.130: ["github.com"] </pre> [[nodejs utitlity module|Node.js 工具模块]]
返回至“
Nodejs dns module
”。
上一节:
Nodejs_net_module
下一节:
Nodejs_domain_module