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 模块中所有的操作都提供了异步的和同步的两个版本, 例如读取文件内 ...
随机推荐
- hdu 4308 Saving Princess claire_ BFS
为了准备算法考试刷的,想明确一点即可,全部的传送门相当于一个点,当遇到一个传送门的时候,把全部的传送门都压入队列进行搜索 贴代码: #include <iostream> #include ...
- (一个)kafka-jstorm集群实时日志分析 它 ---------kafka实时日志处理
package com.doctor.logbackextend; import java.util.HashMap; import java.util.List; import java.util. ...
- WPF绘制党徽(立体效果,Cool)
原文:WPF绘制党徽(立体效果,Cool) 前面用WPF方式绘制了党旗(WPF制作的党旗) ,去年3月份利用C# 及GDI+绘制过党徽,这次使用WPF来绘制党徽. ------------------ ...
- Leetcode:minimum_depth_of_binary_tree解决问题的方法
一. 称号 并寻求最深的二元相似.给定的二进制树.求其最小深度. 最小深度是沿从根节点,到叶节点最短的路径. 二. 分析 当我看到这个题目时.我直接将最深二叉树的代码略微改了下,把ma ...
- CareerCup chapter 1 Arrays and Strings
1.Implement an algorithm to determine if a string has all unique characters What if you can not use ...
- 利用Eclipse中的Maven构建Web项目(三)
利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.依据Dynamic W ...
- iOS_17_控制开关_TabBarController_由storyboard道路
最后效果图: main.storyboard BeyondViewController.m中有一句关键代码,设置tabbarItem图片的样式(30*30) // // BeyondViewContr ...
- UiAutomator喷射事件的源代码分析
上一篇文章<UiAutomator源代码分析之UiAutomatorBridge框架>中我们把UiAutomatorBridge以及它相关的类进行的描写叙述,往下我们会尝试依据两个实例将这 ...
- 面向服务的架构(SOA)
SOA架构基础概念 面向服务的架构(SOA) 在深入探讨什么是面向服务的架构(SOA)之前,先建立一些基本的概念和术语的基本描述而非严格定义,所以也许有些定义在业内还存留争议,此处暂且忽略. 架构基础 ...
- LightOJ 1205 Palindromic Numbers
数位DP.... Palindromic Numbers Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %l ...