dns.lookupService('127.0.0.1',80,(err,hostname,service)=>{
if(err) console.log(err);
console.log('该IP对应的主机为:'+hostname+' 协议为:'+service);
});结果如下:
E:developmentdocumentnodejsdemo>node dns-example.js
该IP对应的主机为:www.test.zmx.com 协议为:http
4.使用网络域名解析获取IP地址
使用dns.resolve(hostname[, rrtype], callback)方法,rrtype有以下选择:
‘A’:IPV4,default
‘AAAA’:IPV6
‘MX’ – mail exchange records 邮件交换记录
‘TXT’ – text records 域名配置说明
‘SRV’ – SRV records 服务器提供的服务
‘PTR’ – PTR records
‘NS’ – name server records 域名服务器
‘CNAME’ – canonical name records 别名记录
‘SOA’ – start of authority record 起始授权机构
‘NAPTR’ – name authority pointer record
callback函数有(err, addresses)两个参数,addresses是一个数组,具体成员需要看具体的rrtype,使用如下所示:
//获取IPV4
dns.resolve('www.qq.com','A',(err,address)=>{
if(err) throw err;
console.log(address);//结果为[ '14.17.32.211', '14.17.42.40', '59.37.96.63' ]});
//获取IPV6
dns.resolve('www.qq.com','AAAA',(err,address)=>{
if(err) throw err;
console.log(address);//结果为[ '240e:ff:f040:28::a' ]});
//获取SOA信息
dns.resolve('www.qq.com','SOA',(err,address)=>{
if(err) throw err;
console.log(address);
//结果为
{ nsname: 'ns-tel1.qq.com',
hostmaster: 'webmaster.qq.com',
serial: 1380440321,
refresh: 300,
retry: 600,
expire: 86400,
minttl: 300 }
});
//获取别名CNAME
dns.resolve('www.baidu.com','CNAME',(err,address)=>{
if(err) throw err;
console.log(address);//结果为[ 'www.a.shifen.com' ]});resovle还存在很多快捷方法,例如:resolve4,resolve6,resolveCname…等等
5.反向域名解析
使用dns.reverse(ip, callback)方法,callback有两个参数(err, hostnames),hostnames是一个域名数组,使用如下所示:
dns.reverse('114.114.114.114',(err,hostnames)=>{
if(err) throw err;
console.log(hostnames);//结果为[ 'public1.114dns.com' ]});









