Node.js v0.10.31API手工-DNS
原版的API品种,这是从以前的翻译和翻译风格不同
Node.js v0.10.31API手冊-文件夹
DNS
require('dns')
引入此模块。
dns
模块中的全部方法都使用了 C-Ares,除了 dns.lookup
使用了线程池中的 getaddrinfo(3)
。
C-Ares
比 getaddrinfo
要快得多,但系统解析器相对于其他程序的操作要更固定。
当一个用户使用 net.connect(80,
或
'google.com')http.get({
时会使用
host: 'google.com' })dns.lookup
方法。
假设用户须要进行大量的高速查询,则最好使用
C-Ares 提供的方法。
'www.google.com'
并反向解析所返回IP 地址的样例。
var dns = require('dns');
dns.resolve4('www.google.com', function (err, addresses) {
if (err) throw err;
console.log('addresses: ' + JSON.stringify(addresses));
addresses.forEach(function (a) {
dns.reverse(a, function (err, domains) {
if (err) {
throw err;
}
console.log('reverse for ' + a + ': ' + JSON.stringify(domains));
});
});
});
dns.lookup(domain, [family], callback)
将一个域名(比方 'google.com'
)解析为第一个找到的
A 记录(IPv4)或 AAAA 记录(IPv6)。地址族family
能够是数字 4
或 6
,缺省为 null
表示同一时候同意
IPv4 和 IPv6 地址族。
(err,
address, family)
。地址 address
參数为一个代表IPv4 或 IPv6 地址的字符串。
地址族family
參数为数字
4 或 6。地表 address
的地址族(不一定是之前传入 lookup
的值)。
err
为一个 Error
对象,当中 err.code
为错误代码。请记住 err.code
被设定为 'ENOENT'
的情况不仅是域名不存在,也可能是查询在其他途径出错,比方没有可用文件描写叙述符时。dns.resolve(domain, [rrtype], callback)
将一个域名(比方 'google.com'
)解析为一个 rrtype
指定记录类型的数组。
有效 rrtypes
取值有'A'
(IPv4
地址。缺省)、'AAAA'
(IPv6
地址)、'MX'
(邮件交换记录)、'TXT'
(文本记录)、'SRV'
(SRV
记录)、'PTR'
(用于
IP 反向查找)、'NS'
(域名server记录)和 'CNAME'
(别名记录)。
(err,
addresses)
。当中 addresses
中每一项的类型取决于记录类型,详见下文相应的查找方法。err
參数为一个 Error
对象,当中 err.code
为下文所列出的错误代码之中的一个。dns.resolve4(domain, callback)
于 dns.resolve()
一样。但仅仅用于查询
IPv4(A
记录)。
addresses
是一个
IPv4 地址的数组(比方['74.125.79.104', '74.125.79.105',
)。
'74.125.79.106']
dns.resolve6(domain, callback)
类似于 dns.resolve4()
。但用于
IPv6(AAAA
)查询。
dns.resolveMx(domain, callback)
类似于 dns.resolve()
,但用于邮件交换查询(MX
记录)。
addresses
为一个MX 记录的数组,每一项包括优先级和交换属性(比方
[{'priority': 10, 'exchange':
'mx.example.com'},...]
)。
dns.resolveTxt(domain, callback)
与 dns.resolve()
相似,但用于文本查询(TXT
记录)。addresses
为 domain
可用文本记录的数组(比方['v=spf1
)。
ip4:0.0.0.0 ~all']
dns.resolveSrv(domain, callback)
查询 SRV 记录,与 dns.resolve()
相似。 addresses
是域名 domain
可用的
SRV 记录数组, 每一条记录都包括优先级(priority)、权重(weight)、端口号(port)、服务名称(name)等属性 (比方: [{'priority':
)。
10, {'weight': 5, 'port': 21223, 'name': 'service.example.com'}, ...]
dns.resolveNs(domain, callback)
查询 NS 记录,与 dns.resolve()
相似。 addresses
是域名 domain
可用的
NS 记录数组, (列如:['ns1.example.com', 'ns2.example.com']
)。
dns.resolveCname(domain, callback)
查询 CNAME 记录,与 dns.resolve()
相似。 addresses
是域名 domain
可用的
CNAME 记录数组, (比如:['bar.example.com']
)。
dns.reverse(ip, callback)
反向解析 IP 地址。返回指向该 IP 地址的域名数组。
(err,
domains)
。err
參数为一个 Error
对象,当中 err.code
为下文所列出的错误代码之中的一个。Error codes
每一个 DNS 查询都可能返回下列错误代码之中的一个:
dns.NODATA
: DNS server返回无数据应答。dns.FORMERR
: DNS 声称查询格式错误。dns.SERVFAIL
: DNS server返回一般失败。dns.NOTFOUND
: 域名未找到。dns.NOTIMP
: DNS server未实现所请求操作。dns.REFUSED
: DNS server拒绝查询。dns.BADQUERY
: DNS 查询格式错误。dns.BADNAME
: 域名格式错误。dns.BADFAMILY
: 不支持的地址类型。dns.BADRESP
: DNS 答复格式错误。dns.CONNREFUSED
: 无法联系 DNS server。dns.TIMEOUT
: 联系 DNS server超时。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 搜索取消。
Node.js v0.10.31API手工-DNS的更多相关文章
- Node.js v0.10.31API手冊-控制台
Node.js v0.10.31API手冊-文件夹 控制台 Object 用于向 stdout 和 stderr 打印字符.类似于大部分 Web 浏览器提供的 console 对象函数,在这里则是输出 ...
- Node.js v0.10.31API手冊-事件
Node.js v0.10.31API手冊-文件夹 Events(事件) Node里面的很多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStrea ...
- Node.js V0.12新特性之性能优化
v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化.本文会介绍其中最值得注意的几个. 支持塞住模式的可写流 现在可写流可以 ...
- 【译】 Node.js v0.12的新特性 -- 性能优化
原文: https://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/ January 21, 2014/in Comm ...
- 【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡
原文:https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing 本 ...
- Node.js V0.12 新特性之性能优化
v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化. 本文会介绍其中最值得注意的几个. http://www.infoq. ...
- node.js初识10
post请求 form.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- Node.js实战10:“流”是Node.js最强大的功能之一。
流是Nodejs的高级应用,掌握流的使用,才能真正胜任NodeJS开发. Nodejs中,流是基于事件的API,用于管理和处理数据,而且效率很好! 什么是流? 流是一个抽象接口,Node 中有很多对象 ...
- Node.js学习(10)----文件系统fs
fs 模块是文件操作的封装,它提供了文件的读取.写入.更名.删除.遍历目录.链接等 POSIX 文件系统操作.与其他模块不同的是,fs 模块中所有的操作都提供了异步的和同步的两个版本, 例如读取文件内 ...
随机推荐
- IE7,8,9兼容性处理
在IE7根据假设高度文本框中设置,则光标将不会被中心的方法如以下: 添加属性,如:style="line-height:32px\9";能够 假设一个页面有多个TAB交换的物品.而 ...
- POJ 1019 Number Sequence 解读
这是一个看似简单,其实很难受. 本来我想发挥它的标题轨道基础.没想到反被消遣-_-|||. 看它在个人基础上,良好的数学就干脆点,但由于过于频繁,需求将被纳入全,因此,应该难度4星以上. 方法就是直接 ...
- 移动web:转盘抽奖(幸运大转盘)
为了获取客户.回馈客户,平台一般会推出抽奖活动类的营销页.因此web页面中,有各式各样的抽奖效果. 格子式(九宫格),背景滚动式(数字/文字/图案),旋转式(转盘),游戏式(砸蛋/拼图...).... ...
- Cocos2d-x示例:单点触摸事件
为了让大家掌握Cocos2d-x中的事件机制,以下我们以触摸事件为例.使用事件触发器实现单点触摸事件.该实比如图8-3所看到的,场景中有三个方块精灵,显示顺序如图8-3所看到的,拖拽它们能够移动它们. ...
- XMPP得知--建立一个管理类
参考其他demo之后,设立一个管理类的发现看起来更舒服,理-- 但在建立与server连接其中.发现 Connect Error: { NSLocalizedDescription = &qu ...
- opengl微发展理解
1.什么是OpenGL? 一种程序,可以与界面和图形硬件交互作用.一个开放的标准 2.软件管道 请看上图 - Apllication层 表示你的程序(调用渲染命令.如opengl API) - ...
- 使用mysqlbinlog工具的基础上及时恢复数据的位置或点
使用mysqlbinlog工具的基础上及时恢复的位置或点 MySQL备份一般采取完全备份的形式加日志备份.让我们运行一个完整备份,每天.每小时运行二进制日志备份. 这样在MySQL Server故障后 ...
- 【软件使用技巧】PL/SQL Developer实现双击table询
二手plsql都知道,在表名默认双击[开展/关闭]. 习惯了MySql Workbench要么Sqlserver Management Studio无法适应其他管理工具. 直接在溶液: Tools - ...
- android 实现悬架控制
实现桌面View 如桌面歌词 1)将要显示在桌面的view,通过WindowManager.addView.挂在到WindowManager下;注意,WindowManager对象 ...
- 用python做自己主动化測试--对server端的自己主动化測试(3)-很多其它http client实例
上一篇中仅仅是实现了一个非常easy的http client功能,request还提供了keep alive, SSL, 多文件上传,cookie 管理功能,http requests头管理等丰富的功 ...