- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调函数概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 应用程序扩展
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTFul API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 从表中选择数据
- Node.js - MySQL Where 条件
- Node.js - MySQL 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 联接
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找数据
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 限制结果
- Node.js - MongoDB 联接
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
Node.js - DNS 模块
Node.js 的dns模块用于执行实际的 DNS 查找,以及使用底层操作系统名称解析功能。此模块提供了一个异步网络包装器,可以使用以下语法导入。
var dns = require("dns")
方法
| 序号 | 方法及描述 |
|---|---|
| 1 |
dns.lookup(hostname[, options], callback) 将主机名(例如“google.com”)解析为找到的第一个 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) 将主机名(例如“google.com”)解析为由 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 是主机名可用的文本记录的二维数组(例如,[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ])。每个子数组包含一个记录的 TXT 块。根据用例,可以将它们连接在一起或单独处理。 |
| 8 |
dns.resolveSrv(hostname, callback) 与 dns.resolve() 相同,但仅适用于服务记录(SRV 记录)。addresses 是主机名可用的 SRV 记录的数组。SRV 记录的属性是优先级、权重、端口和名称(例如,[{‘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 是主机名可用的名称服务器记录的数组(例如,['ns1.example.com', 'ns2.example.com'])。 |
| 11 |
dns.resolveCname(hostname, callback) 与 dns.resolve() 相同,但仅适用于规范名称记录(CNAME 记录)。addresses 是主机名可用的规范名称记录的数组(例如,['bar.example.com'])。 |
| 12 |
dns.reverse(ip, callback) 反向解析 IP 地址到主机名数组。 |
| 13 |
dns.getServers() 返回当前用于解析的 IP 地址(字符串)数组。 |
| 14 |
dns.setServers(servers) 给定一个 IP 地址(字符串)数组,将其设置为用于解析的服务器。 |
rrtypes
以下是 dns.resolve() 方法使用的有效 rrtypes 列表:
A - IPv4 地址,默认
AAAA - IPv6 地址
MX - 邮件交换记录
TXT - 文本记录
SRV - SRV 记录
PTR - 用于反向 IP 查找
NS - 名称服务器记录
CNAME - 规范名称记录
SOA - 授权起始记录
错误代码
每个 DNS 查询可以返回以下错误代码之一:
dns.NODATA - DNS 服务器返回的答案没有数据。
dns.FORMERR - DNS 服务器声称查询格式错误。
dns.SERVFAIL - DNS 服务器返回一般性故障。
dns.NOTFOUND - 未找到域名。
dns.NOTIMP - DNS 服务器未实现请求的操作。
dns.REFUSED - DNS 服务器拒绝查询。
dns.BADQUERY - DNS 查询格式错误。
dns.BADNAME - 主机名格式错误。
dns.BADFAMILY - 不支持的地址族。
dns.BADRESP - DNS 应答格式错误。
dns.CONNREFUSED - 无法联系 DNS 服务器。
dns.TIMEOUT - 联系 DNS 服务器时超时。
dns.EOF - 文件结束。
dns.FILE - 读取文件错误。
dns.NOMEM - 内存不足。
dns.DESTRUCTION - 正在销毁通道。
dns.BADSTR - 字符串格式错误。
dns.BADFLAGS - 指定了非法标志。
dns.NONAME - 给定的主机名不是数字。
dns.BADHINTS - 指定了非法的提示标志。
dns.NOTINITIALIZED - c-ares 库初始化尚未执行。
dns.LOADIPHLPAPI - 加载 iphlpapi.dll 错误。
dns.ADDRGETNETWORKPARAMS - 找不到 GetNetworkParams 函数。
dns.CANCELLED - DNS 查询已取消。
示例
创建一个名为 main.js 的 js 文件,其中包含以下代码:
var dns = require('dns');
dns.lookup('www.google.com', function onLookup(err, address, family) {
console.log('address:', address);
dns.reverse(address, function (err, hostnames) {
if (err) {
console.log(err.stack);
}
console.log('reverse for ' + address + ': ' + JSON.stringify(hostnames));
});
});
现在运行 main.js 以查看结果:
$ node main.js
验证输出。
address: 173.194.46.83 reverse for 173.194.46.83: ["ord08s11-in-f19.1e100.net"]
