簡體   English   中英

如何從主機名獲取IP地址?

[英]How to get ip Address from hostname?

我有一個node.js服務器應用程序,需要知道請求的IP地址才能執行某些操作。 問題是,當用戶使用/ etc / hosts注冊一個IP別名訪問我的服務器時,服務器端的req.headers信息顯示的是IP別名而不是所請求的ip。

我正在使用Restify服務於我的應用程序,我已經嘗試過req.connection了,但是還是不好。

我需要我網站上的javascript知道IP別名的IP地址(在/ etc / hosts中預先注冊)實際上是什么,或者我的node.js(restify)解釋請求的真實ip_address而不是客戶端的ip別名用途。

Edit1:獲取服務器(nodejs)上請求的IP地址的主要問題是,在這種情況下,請求的是在/ etc / hosts上注冊的ALIAS。 因此它以命名別名而不是ip的形式到達服務器(我的服務器偵聽多個不同的IP)

您可以在這里查看https://nodejs.org/api/dns.html#dns_dnspromises_lookup_hostname_options

也嘗試

const dns = require('dns');
const dnsPromises = dns.promises;
const options = {
  family: 6,
  hints: dns.ADDRCONFIG | dns.V4MAPPED,
};

dnsPromises.lookup('example.com', options).then((result) => {
  console.log('address: %j family: IPv%s', result.address, result.family);
  // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6
});

// When options.all is true, the result will be an Array.
options.all = true;
dnsPromises.lookup('example.com', options).then((result) => {
  console.log('addresses: %j', result);
  // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}]
});

檢查此輸出部分

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM