为什么req.socket.address()。地址显示的IP地址与我的实际公共IP地址不同?

时间:2018-04-13 13:06:39

标签: node.js amazon-web-services express ip-address

我正在Node.js中编写一个小应用程序,它要求我获取IP地址。我这样做是通过使用req.socket.address()。address给出了home的输出 - > 127.0.0.1。我的理解是因为它背后是某种VPN。

但是,在AWS控制台中,我使用我的公共IP是一个不同的值。我的问题是AWS如何确定我的IP地址和Node.js req.socket.address()。address方法给我一个localhost的通用IP?

1 个答案:

答案 0 :(得分:0)

您应该可以使用EC2 Instance Metadata在EC2实例上获取公共IP。

可以从以下端点找到元数据类别(从EC2实例调用它):

  

http://169.254.169.254/latest/meta-data/

在前面提到的URL的末尾附加一个类别以获取元数据值。在您的情况下,我认为这正是您所寻找的:

  

http://169.254.169.254/latest/meta-data/public-ipv4