NodeJS dns模块

来源:互联网 发布:歧视中国人 知乎 编辑:程序博客网 时间:2024/06/10 02:53

前言

本人所发的NodeJS系列学习笔记参考了一些书籍、官方文档以及一些前辈的代码及注释,可能有些地方理解的不对。如果有误,欢迎到我的github上提出。当然,希望可以点个星星。

dns模块下函数大类

该模块包含两类不同的函数:
1. 使用操作系统配置文件进行域名解析,而且没必要进行网络通信。该分类只有一个函数:
dns.lookup

“`
var dns = require(‘dns’);

dns.lookup(‘www.github.com’, (err, address, family) => {
if (err) {
throw err;
}

console.log('Address: ', address);

});
“`

  1. 连接到一个实际的dns服务器进行域名解析的函数,该类函数总是使用网络去进行域名查询。
    这些函数不使用dns.lookup使用的系统配置文件,比如ets/hosts

    var dns = require('dns');dns.resolve4('www.github.com', (err, address, family) => {if (err) {    throw err;}console.log('Address: ', address);});

函数调用说明

  • dns.lookupService(ip, port, callback)
    使用getnameinfo获取传入的ip地址和端口对应的主机和服务。
    (使用的是系统配置文件)

    var dns = require('dns');dns.lookupService('192.30.255.133', 80, (err, hostname, service) => {if (err) {    throw err;}console.log('host: ', hostname);});
  • dns.resolve(hostname[, rrtype], callback)
    根据主机名返回一个由rrtype指定类别的地址信息的数组。

    var dns = require('dns');dns.resolve('www.github.com', 'CNAME', (err, address) => {if (err) {    throw err;}console.log(address);});
  • dns.resolve4(hostname, callback)
    dns.resolve,但是只返回IPv4 地址。(A records)

  • dns.resolve6(hostname, callback)
    dns.resolve4,但是只返回IPv6 地址。(AAAA records)

  • dns.reverse(ip, callback)
    根据ip地址返回一个包含主机信息的数组。

    var dns = require('dns');dns.reverse('192.30.255.133', (err, hostnames) => {if (err) {    throw err;}console.log('hostnames: ', hostnames);});

    源码地址

原创粉丝点击