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 模块中所有的操作都提供了异步的和同步的两个版本, 例如读取文件内 ...
随机推荐
- rsync 只是测试,请看下一篇
实现从客户服务器去同步资源服务器 1.解压 # tar -xzpvf rsync-2.5.6.tar.gz 编译安装 # cd rsync-2.5.6/ # ./configure --pref ...
- 精致的外观Request
为什么要说Request精致的外观?请注意,我们这里所说的并不总是理解含义的外观门面,事实上,它使用的立面设计图案.使用的主要考虑数据安全的门面.它涉及到一个更大的系统系统的多个子系统之间的互动沟通. ...
- Caching-缓存架构与源码分析
Caching-缓存架构与源码分析 首先奉献caching的开源地址[微软源码] 1.工程架构 为了提高程序效率,我们经常将一些不频繁修改,但是使用了还很大的数据进行缓存.尤其是互联网产品,缓存可以说 ...
- [MSSQL]最小公约数
[摘要]一个朋友在展BOM的时候有这种需求,两列字段(数值):A ,B A=用量,B=底数,组成用量=用量/底数.A/B,若能被整除,显示整除的结果,若不能整除显示分数形式A/B(分数形式要是约分 ...
- WIZnet通过启动在线培训活动:计算机网络TCP/IP协议而事实上,现在的方法
为了给大家营造更好的学习环境.WIZnet特此举办第一期培训活动,由WIZnet一线project师为你分享最最前沿和有用的网络技术知识,帮你解答开发过程中的疑问.欢迎前来交流.名额有限(20名满), ...
- zabbix 实现curl 显示器
1.进入Configure->Templates 2. 新建一个模板 3.新建模板,并保存 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFpND ...
- spring整合redis客户端及缓存接口设计(转)
一.写在前面 缓存作为系统性能优化的一大杀手锏,几乎在每个系统或多或少的用到缓存.有的使用本地内存作为缓存,有的使用本地硬盘作为缓存,有的使用缓存服务器.但是无论使用哪种缓存,接口中的方法都是差不多. ...
- 自己写CPU第九阶段(3)——加载存储指令说明2(swl、swr)
我们会继续上传新书<q=%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%86%99CPU&ie=utf-8&src=se_lighten_quot ...
- js cookie设置最大过期时间 Infinity
Note: 对于永久cookie我们用了Fri, 31 Dec 9999 23:59:59 GMT作为过期日.如果你不想使用这个日期,可使用世界末日Tue, 19 Jan 2038 03:14:07 ...
- bonecp使用数据源
bonecp.properties jdbc.driverClass=oracle.jdbc.driver.OracleDriver jdbc.jdbcUrl=jdbc:oracle:thin:@19 ...