📜  Node.js dns.resolve() 方法

📅  最后修改于: 2022-05-13 01:56:36.656000             🧑  作者: Mango

Node.js dns.resolve() 方法

dns.resolve() 方法是 dns 模块的内置应用程序编程接口,用于将主机名解析为资源记录数组。

句法:

dns.resolve( hostname, rrtype, callback )

参数:此方法接受三个参数,如上所述,如下所述:

  • 主机名:此参数指定一个字符串,表示要解析的主机名。
  • rrtype:指定资源记录类型。它的默认值为“A”。记录列表('A'、'AAAA'、'ANY'、'CNAME'、'MX'、'TXT'、'NS'、'NAPTR'、'PTR'、'SOA'、'SRV')是如下面所描述的:
    • 答: IPv4地址
    • AAAA: IPv6 地址
    • ANY:任何记录
    • CNAME:规范名称记录
    • MX:邮件交换记录
    • NAPTR:名称权限指针记录
    • NS:名称服务器记录
    • PTR:指针记录
    • SOA:权限记录的开始
    • SRV:服务记录
    • TXT:文本记录
  • callback:指定DNS解析主机名后调用的函数。
    • 错误:如果生成则指定错误。
    • 记录:它是表示返回记录的字符串或对象。

    返回值:该方法返回错误,通过回调函数记录,这些数据作为参数传递给回调函数。

    下面的例子说明了 Node.js 中 dns.resolve() 方法的使用:

    示例 1:

    // Node.js program to demonstrate the   
    // dns.resolve() method
      
    // Accessing dns module
    const dns = require('dns');
      
    // Set the rrtype for dns.resolve() method
    const rrtype="A";
      
    // Calling dns.resolve() method for hostname
    // geeksforgeeks.org and print them in
    // console as a callback
    dns.resolve('geeksforgeeks.org', rrtype, (err, records)
             => console.log('records: %j', records));
    

    输出:

    records: ["34.218.62.116"]

    示例 2:

    // Node.js program to demonstrate the   
    // dns.resolve() method
      
    // Accessing dns module
    const dns = require('dns');
      
    // Set the rrtype for dns.resolve() method
    const rrtype="MX";
      
    // Calling dns.resolve() method for hostname
    // geeksforgeeks.org and print them in
    // console as a callback
    dns.resolve('geeksforgeeks.org', rrtype, (err, records)
                 => console.log('records: %j', records));
    

    输出:

    records: [
        {"exchange":"alt1.aspmx.l.google.com", "priority":5},
        {"exchange":"alt2.aspmx.l.google.com", "priority":5},
        {"exchange":"aspmx.l.google.com", "priority":1},
        {"exchange":"alt3.aspmx.l.google.com", "priority":10},
        {"exchange":"alt4.aspmx.l.google.com", "priority":10}
    ]
    

    示例 3:

    // Node.js program to demonstrate the   
    // dns.resolve() method
      
    // Accessing dns module
    const dns = require('dns');
      
    // Set the rrtype for dns.resolve() method
    const rrtype="TXT";
      
    // Calling dns.resolve() method for hostname
    // geeksforgeeks.org and print them in
    // console as a callback
    dns.resolve('geeksforgeeks.org', rrtype, (err, 
        records) => console.log('records: %j', records));
    

    输出:

    records: [
        ["v=spf1 include:amazonses.com include:_spf.google.com -all"],
        ["fob1m1abcdp777bf2ncvnjm08n"]
    ]
    

    示例 4:

    // Node.js program to demonstrate the   
    // dns.resolve() method
      
    // Accessing dns module
    const dns = require('dns');
      
    // Set the rrtype for dns.resolve() method
    const rrtype="NS";
      
    // Calling dns.resolve() method for hostname
    // geeksforgeeks.org and print them in
    // console as a callback
    dns.resolve('geeksforgeeks.org', rrtype, (err, 
        records) => console.log('records: %j', records));
    

    输出:

    records: [
        "ns-1520.awsdns-62.org", 
        "ns-1569.awsdns-04.co.uk",
        "ns-245.awsdns-30.com",
        "ns-869.awsdns-44.net"
    ]
    

    注意:以上程序将使用node index.js命令编译运行。

    参考: https://nodejs.org/api/dns.html#dns_dns_resolve_hostname_rrtype_callback