该方法将给定的地址和端口解析为主机名和服务。此方法使用操作系统的底层getnameinfo实现。dns.lookupService()
一个类型错误,如果地址不是有效的IP地址将被抛出。dnsPromises和dns模块之间的区别在于dnsPromises提供了一种替代异步 DNS 方法的方法,这些方法返回 Promise 对象而不是回调。
dnsPromises.lookupService(address, port)
address – 此参数接受需要解析的 IP 地址的输入。
port – 此参数接受与 IP 地址相连的端口号的输入。
创建一个名为“lookupService.js”的文件并复制以下代码片段。创建文件后,使用命令“node lookupService.js”运行此代码。
// dns.lookupService() 演示示例 // 导入 dns 模块 const dns = require('dns'); const dnsPromises = dns.promises; // 传递IP地址和端口 dnsPromises.lookupService('127.0.0.1', 22).then((response) => { console.log(response.hostname, response.service); });输出结果
localhost ssh
// dns.lookupService() 演示示例 // 导入 dns 模块 const dns = require('dns'); const dnsPromises = dns.promises; // 传递以下选项进行查找 const options = { //IPv4 family: 4, hints:dns.ADDRCONFIG| dns.V4MAPPED, }; dnsPromises.lookup('nhooo.com', options).then((response) => { if(response){ console.log(response); // 将 dns 值传递给 lookupservice dnsPromises.lookupService(response.address, 80).then((res) => { console.log(res.hostname, res.service); }); } });输出结果
C:\home\node>> node lookupService.js { address: '95.217.74.146', family: 4 } static.146.74.217.95.clients.your-server.de http