![](/img/trans.png)
[英]How to get a URL address without IP or hostname using javascript or jQuery?
[英]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)
節點JS DNS文檔。 https://nodejs.org/api/dns.html
或檢查以下鏈接。 如何將主機名解析為節點js中的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.