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 模块中所有的操作都提供了异步的和同步的两个版本, 例如读取文件内 ...
随机推荐
- Linux下PS命令详解 (转)
要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1)ps :是显示瞬间进程的状态,并不动态连续: (2)top:如果想对进程运行时间监控,应该用 top 命令 ...
- unity3d插入Daikon Forge GUI 中国课程-7-高级控制slider采用
(游戏开始的牛市)大家好我是孙广东.官方网站提供的是专业的视频教程http://www.daikonforge.com/dfgui/tutorials/,只是是在youtube上,要观看是须要FQ的. ...
- js缓冲运动
缓冲运动 现象:逐渐变慢,最后停止 原理:距离越远,速度越大 速度的计算方式: 1,速度由距离决定 2,速度=(目标值-当前值)/缩放系数 说明:速度为正负数时,也决定了物体移动的方向 示例:div缓 ...
- python udp编程实例
与python tcp编程控制见 http://blog.csdn.net/aspnet_lyc/article/details/39854569 c++ udp/tcp 编程见 http://blo ...
- opencv2使用形态学滤波对图像进行边缘及角点检測
#if !defined MORPHOF #define MORPHOF #include <opencv2/core/core.hpp> #include <opencv2/img ...
- oracle dblink造成远程数据库session过多
现场报网公司数据库连不上,先检查了下数据库processes=1500,session=2200.我认为非常大啊.这个数据库没有几个人用. 查看v$session中的session最多是哪个machi ...
- NGUI判断是否点击到UI控件
注意:UI应加上Box Collider 1.射线检测 UICamera发一条射线,射线碰到了东西就说明点击到了UI Ray ray=UICamera.mainCamera.ScreenPointTo ...
- 开源 自由 java CMS - FreeCMS1.9 评论管理
项目地址:http://code.google.com/p/freecms/ 评论管理 1. 评论管理 从左側管理菜单点击评论管理进入. 2. 评论审核 选择须要审核的评论,然后点击"审核& ...
- Android截图
Android截图很好的实现,从文档的发展,查看View有一个接口getDrawingCache(),这个接口可以得到View当调用这个接口的位图图像Bitmap. 抓取截图View在图像的某一个时刻 ...
- C指针决心 ------ 指针的概念和元素
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 指针在C语言中的地位,不用多说. 指针的概念 指针是一个特殊的变量,它里面存储 ...