【问题标题】:Get the outside IP of the server the webapp is hosted on获取 webapp 所在服务器的外部 IP
【发布时间】:2014-10-09 11:36:08
【问题描述】:

如何获取服务器的全局IP?

我可以向“http://wtfismyip.com/json”发出 http 请求并获取 IP 地址。

有没有办法在不进行外部请求的情况下获取 IP(或 dns)? 我在“process.env”或“os”对象上找不到任何东西。

我将 nodejs 与 express 一起使用并部署到 heroku。

【问题讨论】:

  • 我有理由确定,无论何时您 ping 服务器,它都必须解析为 IP 地址才能这样做。为此,此链接可能会有所帮助:stackoverflow.com/questions/4282151/…
  • 您在这里具体需要做什么?向该 URL 发出出站请求甚至可能不正确,因为这将返回生成您的流量的公共源 IP,这可能与分配给您服务器的入站流量的 IP 不同.
  • 好吧,我需要 IP 将其放入请求标头中。如果我没有设置正确的 headers.host,某些服务器不会响应。
  • 是的,我需要的是公源IP。
  • the public source IP 然后你需要访问外部资源;您服务器的上游路由器/防火墙对您的出站流量执行地址转换,因此您需要连接到该转换之外的某个资源。

标签: javascript node.js heroku express


【解决方案1】:

简单的答案:不。您需要某种外部资源。如果您可以访问该源,则该源可能与路由器一样本地,但它的工作量大于其价值。而且,如果您使用的是托管解决方案,那么无论如何。

我认为您想要快速获得此功能的原因是为了速度优化?如果是这样,那么我建议您不要担心。这是一个很小的动作,不会产生任何持久的影响。

现在我想起来了;你应该已经知道你的公共IP了!如果它是一个托管解决方案,它不应该改变,所以你可以得到它一次,只需将它硬编码到你的项目中。不过我没有使用 Heroku 的经验,所以他们可能使用动态 IP。

【讨论】:

  • 是的,你是对的。我想自动化这个,以防我部署到其他域。认为heroku为此有一个插件或其他东西。在文档中找不到任何内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-27
  • 2021-05-12
  • 1970-01-01
  • 2011-12-16
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
相关资源
最近更新 更多