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


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


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

用法:

dnsPromises.lookup( hostname, options )

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


  1. hostname:此參數指定一個字符串,該字符串表示要檢查的主機名。
  2. options:它采用整數或對象的形式。它指定在查找期間要使用的選項。
    • family:它是一個整數值,指定記錄的族。其值必須為4、6或0,0表示同時返回IPv4和IPv6,4表示返回IPv4,6表示返回IPv6。默認值為0。
    • hints:它是一個數字,指定一個或多個getaddrinfo標誌。通過對其值進行按位或運算,可以傳遞多個標誌。
    • all:它是一個布爾參數。如果將其設置為TRUE,則回調將返回數組中所有已解析的地址,否則它將返回單個地址。其默認值為FALSE。
    • verbatim:它是一個布爾參數。如果將其設置為TRUE,則回調將無順序獲得DNS解析程序返回的所有解析的IPv4和IPv6地址。如果設置為FALSE,則將IPv4地址放在IPv6地址之前。現在的默認值為FALSE,但預計不久後將為TRUE。

返回值:此方法返回錯誤,IP地址和IP地址係列。

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

範例1:

// Node.js program to demonstrate the    
// dnsPromises.lookup() method 
  
// Accessing promises object from dns module 
const dns = require('dns'); 
const dnsPromises = dns.promises; 
   
// Setting options for dnsPromises.lookup() method 
const options = { 
      
    // Setting family as 6 i.e. IPv6 
    family:6, 
    hints:dns.ADDRCONFIG | dns.V4MAPPED, 
}; 
   
// Calling dnsPromises.lookup() for hostname 
// geeksforgeeks.org 
dnsPromises.lookup('geeksforgeeks.org', options).then((response) => { 
  console.log(' family:IPv%s address:%j', response.family, response.address); 
});

輸出:

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

範例2:

// Node.js program to demonstrate the    
// dnsPromises.lookup() method 
  
// Accessing promises object from dns module 
const dns = require('dns'); 
const dnsPromises = dns.promises; 
   
// Setting options for dnsPromises.lookup() 
// method, all as true 
const options = { 
    all:true, 
}; 
  
dnsPromises.lookup('geeksforgeeks.org', options).then((response) => { 
    console.log('addresses:%j', response); 
});

輸出:

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

範例3:

// Node.js program to demonstrate the    
// dnsPromises.lookup() method 
  
// Accessing promises object from dns module 
const dns = require('dns'); 
const dnsPromises = dns.promises; 
   
// Setting options for dnsPromises.lookup() 
//  method, all as true 
const options = { 
    all:true, 
}; 
   
// Asynchronous function  
(async function() { 
      
    // Address from lookup function 
    const addresses = await dnsPromises.lookup( 
                    'geeksforgeeks.org', options); 
      
    // Printing  addresses 
    console.log("from async:"); 
    console.log(addresses);    
})();

輸出:

from async:
[ { address:'34.218.62.116', family:4 },
  { address:'fd00:0:14:13::22da:3e74', family:6 } ]

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

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



相關用法


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