當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Node.js dns.lookup()用法及代碼示例

dns.lookup()方法是dns模塊的內置應用程序編程接口,用於將給定參數的指定主機名的IP地址解析為第一個找到的A(IPv4)或AAAA(IPv6)記錄。

用法:

dns.lookup( hostname, options, callback )

參數:此方法具有上述和以下所述的三個參數:


  • hostname:此參數指定一個字符串,該字符串表示要檢查的主機名。
  • options:它采用整數或對象的形式。它指定在查找期間要使用的選項。
    1. family:它是一個整數值,指定記錄的族。該值必須為4、6或0,其中0表示返回IPv4和IPv6值,4表示返回IPv4,6表示返回IPv6。其默認值為0。
    2. hints:它是一個數字,指定一個或多個getaddrinfo標誌。通過對其值進行按位或運算,可以傳遞多個標誌。
    3. all:它是一個布爾參數。如果將其設置為TRUE,則回調函數將返回數組中所有已解析的地址,否則將返回單個地址。其默認值為FALSE。
    4. verbatim:它是一個布爾參數。如果將其值設置為TRUE,則回調將獲得DNS解析器返回的所有已解析的IPv4和IPv6地址(無序)。如果設置為FALSE,則將IPv4地址放在IPv6地址之前。現在的默認值為FALSE,但預計不久後將為TRUE。
  • callback:它指定完成主機名的DNS解析後要調用的函數。
    1. error:如果生成,則指定錯誤。例如,如果主機名不存在或查找失敗,則設置為“ ENOTFOUND”。
    2. address:它是IPv4和IPv6地址的字符串表示形式。
    3. family:它是一個整數值,指定記錄的族。該值必須為4、6或0,其中0表示它不是IPv4或IPv6地址。 0表示操作係統使用的名稱解析服務中的故障。
  • 返回值:此方法通過回調函數返回錯誤,IP地址族和IP地址。這些數據作為參數傳遞給回調函數。

    以下示例說明了Node.js中dns.lookup()方法的使用:

    範例1:

    // Node.js program to demonstrate the  
    // dns.lookup() method  
       
    // Accessing dns module 
    const dns = require('dns'); 
      
    // Setting options for dns.lookup() method 
    const options = { 
          
        // Setting family as 6 i.e. IPv6 
        family:6, 
        hints:dns.ADDRCONFIG | dns.V4MAPPED, 
    }; 
      
    // Calling dns.lookup() for hostname geeksforgeeks.org 
    // and displaying them in console as a callback 
    dns.lookup('geeksforgeeks.org', options, (err, address, family) => 
            console.log('address:%j family:IPv%s', address, family));

    Output:

address:"fd00:0:13:13::22da:3e74" family:IPv6

範例2:

// Node.js program to demonstrate the  
// dns.lookup() method  
   
// Accessing dns module 
const dns = require('dns'); 
  
// Setting options for dns.lookup() 
// method, all as true 
const options = { 
    all:true, 
}; 
  
// Calling dns.lookup() for hostname 
//  geeksforgeeks.org and displaying 
// them in console as a callback 
dns.lookup('geeksforgeeks.org', options, (err, addresses) => 
        console.log('addresses:%j', addresses));

輸出:

addresses:[
    {"address":"34.218.62.116","family":4},
    {"address":"fd00:0:13:13::22da:3e74","family":6}
]

注意:上麵的程序將通過使用node index.js命令。

參考: https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback



相關用法


注:本文由純淨天空篩選整理自gekcho大神的英文原創作品 Node.js | dns.lookup() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。