繁体   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