原版的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的更多相关文章

  1. Node.js v0.10.31API手冊-控制台

    Node.js v0.10.31API手冊-文件夹 控制台 Object 用于向 stdout 和 stderr 打印字符.类似于大部分 Web 浏览器提供的 console 对象函数,在这里则是输出 ...

  2. Node.js v0.10.31API手冊-事件

    Node.js v0.10.31API手冊-文件夹 Events(事件) Node里面的很多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStrea ...

  3. Node.js V0.12新特性之性能优化

    v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化.本文会介绍其中最值得注意的几个. 支持塞住模式的可写流 现在可写流可以 ...

  4. 【译】 Node.js v0.12的新特性 -- 性能优化

    原文: https://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/ January 21, 2014/in Comm ...

  5. 【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡

    原文:https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing 本 ...

  6. Node.js V0.12 新特性之性能优化

    v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化. 本文会介绍其中最值得注意的几个. http://www.infoq. ...

  7. node.js初识10

    post请求 form.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  8. Node.js实战10:“流”是Node.js最强大的功能之一。

    流是Nodejs的高级应用,掌握流的使用,才能真正胜任NodeJS开发. Nodejs中,流是基于事件的API,用于管理和处理数据,而且效率很好! 什么是流? 流是一个抽象接口,Node 中有很多对象 ...

  9. Node.js学习(10)----文件系统fs

    fs 模块是文件操作的封装,它提供了文件的读取.写入.更名.删除.遍历目录.链接等 POSIX 文件系统操作.与其他模块不同的是,fs 模块中所有的操作都提供了异步的和同步的两个版本, 例如读取文件内 ...

随机推荐

  1. jvisualvm远程监控Tomcat

    网上已经有很多这方面的资料,但有些很杂乱,这里做了整理总结. 一.Java VisualVM 概述 对于使用命令行远程监控jvm 太麻烦 . 在jdk1.6 中 Oracle 提供了一个新的可视化的. ...

  2. Mpmovieplayercontroller 黑屏

    MPMoviePlayerController * moviePlayer; 原因是:你在声明movieplayer的时候,声明成为了局部变量,与此同一时候你的project支持ARC,所以会出现黑屏 ...

  3. redis预切片技术,实现

    平时,我们将创建多个redis实例,以缓解单redis压力范例.但,作为高速缓存的数量增加.对redis对于扩展是一种非 - 不要无所谓.对redis有几种方法用于扩张可能.让我们添加每个redis最 ...

  4. python获取的信息列表微信公共平台和用户头像

    转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...

  5. Ehcache 整合Spring 使用页面、对象缓存(转)

    Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且Ehcache可以对页面.对象.数据进行缓存,同时支持集群/分布式缓存.如果整合Spring.Hibernate也非常的 ...

  6. 【干货】免费获得WebStorm软件

    内容提要: 1.WebStorm简介 2.如何免费获得WebStorm 3.利用学生身份免费获得正式版WebStorm WebStorm简介 WebStorm 是一款前端开发 IDE(集成开发环境), ...

  7. Redis测井系统

    什么是 SLOWLOG Slow log 是 Redis 用来记录查询运行时间的日志系统. 查询运行时间指的是不包含像client响应(talking).发送回复等 IO 操作,而单单是运行一个查询命 ...

  8. jconsole 连接 eclipse启动项

    eclipse 启动java项目默认情况下不开启jmx远程观看,假设需要看看内存使用情况对项目执行的线程等信息,能eclipse添加启动参数: -Dcom.sun.management.jmxremo ...

  9. cocos2d_x_06_游戏_一个都不能死

    终于效果图: 环境版本号:cocos2d-x-3.3beta0 使用内置的物理引擎 游戏主场景 // // HeroScene.h // 01_cocos2d-x // // Created by b ...

  10. etl工具,kettle实现了周期

    Kettle这是国外的来源ETL工具,纯java写.能Window.Linux.Unix在执行.绿色无需安装,稳定高效的数据提取. 业务模型: 在关系型数据库中有张非常大的数据存储表,被设计成奇偶库存 ...