1. dns
在node.js中,提供dns模块,以实现域名查找及域名解析的处理。
2. 使用resolve方法将域名解析为dns记录
`dns.resolve(domain, [rrtype], callback(err, address){...})`
domain参数为一个字符串,用于指定需要被解析的域名,可以包括子域名。
rrtypr参数为一个字符串,用于指定需要获取的记录类型,可指定的记录类型如下。
回调函数有两个参数,err是域名解析失败时触发的错误对象,addresses参数为一个数组,其中存放了所有获取到的dns记录。
3. 为resolve方法定制的各种便捷方法
4. 使用lookup方法查询ip地址
当使用resolve4方法或者resolve6方法时,由于callback参数值回调函数中的addresses参数值数组中存放着所有获取到的ipv4地址或ipv6地址。因此dns模块中提供了一个获取第一个被发现的ipv4地址或者ipv6地址的lookup方法
`dns.lookup(domain, [family], callback(err, addresses, family){...})`
5. 使用reverse方法反向解析ip地址
在dns模块中,使用reverse方法将一个ip地址反向解析为一组与该ip地址绑定的域名
`dns.reverse(ip, callback(err, domains){...})`
6. dns模块中的各种错误代码
err参数值为执行各种解析或反向解析操作时触发的错误对象,可根据该错误对象的code属性值,即触发的错误代号判断出发了什么错误
7. dns模块的基本使用
const dns = require('dns'); let url = 'www.qq.com'; dns.resolve(url, 'a', (err, addresses) => { console.log(addresses); // ipv4地址 [ '103.7.30.123' ] }); dns.resolve(url, 'aaaa', (err, addresses) => { console.log(addresses); // ipv6地址 [ '240e:e1:8100:28::2:16' ] }); dns.resolvemx('qq.com', (err, addresses) => { console.log(addresses); // 邮件交换服务器记录 // [ { exchange: 'mx2.qq.com', priority: 20 }, // { exchange: 'mx1.qq.com', priority: 30 }, // { exchange: 'mx3.qq.com', priority: 10 } ] }); dns.resolvetxt('qq.com', (err, addresses) => { console.log(addresses); // 域名附加的描述记录 // [ [ 'v=spf1 include:spf.mail.qq.com -all' ] ] }); dns.resolvesrv('www.baidu.com', (err, addresses) => { console.log(addresses); // 服务记录 // [] }); dns.resolvens('www.github.com', (err, addresses) => { console.log(addresses); // 域名服务器记录 // [ 'ns-421.awsdns-52.com', // 'ns-520.awsdns-01.net', // 'ns1.p16.dynect.net', // 'ns2.p16.dynect.net', // 'ns3.p16.dynect.net', // 'ns4.p16.dynect.net', // 'ns-1283.awsdns-32.org', // 'ns-1707.awsdns-21.co.uk' ] }); dns.resolvecname('www.163.com', (err, addresses) => { console.log(addresses); // 获取别名记录 // [ 'www.163.com.lxdns.com' ] }); dns.lookup('google.com', 4, (err, address, family) => { // 查询ip地址 // address,查询到的地址 // family,ipv4或ipv6 console.log(address);// 172.217.27.142 console.log(family);// 4 }); dns.lookup('google.com', 6, (err, address, family) => { console.log(address);// 2404:6800:4008:803::200e console.log(family);// 6 }); dns.reverse('203.188.200.67', (err, domain) => { // 反向解析ip地址 console.log(domain); // [ 'media-router-fp1.prod.media.vip.tp2.yahoo.com' ] });
如对本文有疑问, 点击进行留言回复!!
Parallels Desktop v15.1.4-47270 商业版下载 Mac安装Windows首选虚拟机
关于LPC824Lite开发板下载程序时提示"Invalid ROM Table"
MySQL 5.7 关于 JSON 类型的子集Key/Value获取方法分享
javascript从入门到跑路-----小文的js学习笔记(19)------- js的垃圾回收机制
网友评论