如何使用javascript获取运行应用程序的主机IP和端口号

Posted

技术标签:

【中文标题】如何使用javascript获取运行应用程序的主机IP和端口号【英文标题】:how to get host IP and port number on which the application is running using javascript 【发布时间】:2012-09-17 23:47:32 【问题描述】:

谁能告诉我如何使用 javascript 获取运行 Web 应用程序的主机 IP 和端口号(例如 127.0.0.1:8080)

【问题讨论】:

你是指下载它的那个? Webapps 在本地浏览器上“运行”。 ya.. 下载的那个。 【参考方案1】:

恐怕无法通过Javascript直接获取IP地址。它没有暴露在window.location 对象中。

部分原因是随后访问 address:port 在语义上与访问 hostname:port 不同 - 它们在技术上是不同的 URL。

如果您实际需要的是下载当前 web 应用程序的 URL 的主机部分,您需要:

window.location.hostname
window.location.port

如果使用“默认”端口,则后者可能为空,因此您还需要阅读:

window.location.protocol

并检查它是http:(即端口80)还是https:(端口443)。

你也可以使用:

window.location.host

这将包含hostnameport 作为冒号分隔的字符串,同样需要注意的是,如果通过“默认”端口访问内容,则:port 部分将被省略协议。

【讨论】:

感谢您的回复。当我使用 window.location.hostname 时,它​​会显示像 localhost 这样的主机名,但我需要像 127.0.0.1 这样的实际 IP 地址 @user1455802 我确实想知道,因为您的问题对于您想要哪个感到困惑(您说的是“地址”,但指定了“本地主机”)。恐怕你无法直接从 Javascript 中获取 IP 地址。 实际上问题是当我的应用程序部署在某个 ip 上时。 127.16.1.247,我的 websocket 工作正常。但是当我为这个 IP 提供像 sample.something.com 这样的主机名时,websocket 不起作用 Auction.initialize = function() Auction.connect('ws://' + window.location.host + '/html5/bidforanything/ '); ; Web 应用程序使用默认端口 8085。因此使用 window.location.host,它会变为空白。我不想在 javascript 中硬编码 8085。我怎样才能得到端口号?..请帮助 @user1455802 8085 是如何“默认”的?【参考方案2】:
document.location.host      // localhost:1234
document.location.hostname  // localhost
document.location.port      // 1234

【讨论】:

感谢您的回复。当我使用 document.location.host 时,它会显示主机名,如 localhost,但我需要实际的 IP 地址,如 127.0.0.1 没有办法仅使用 javascript 来查找 ip。但是,您可以使用 ajax 轮询某种网络服务:***.com/questions/391979/… 从用户提供的示例中,我认为 document.location.host 会起作用。我假设 127.0.0.1:8080 是他们正在使用并试图获取的网址;而不是确定 url 解析到的 ip。

以上是关于如何使用javascript获取运行应用程序的主机IP和端口号的主要内容,如果未能解决你的问题,请参考以下文章

如何在共享主机上运行 SASS 或 LESS?

如何使用nodejs获取节点docker容器中的主机主目录路径?

如何使用 C# 或 VB.NET 获取当前的本地主机名? [复制]

如何在 iPad 上运行的 iPhone 应用程序中获取 iOS 8 自定义键盘的主机应用程序屏幕几何图形?

我如何运行 python flask 并获取本地主机的链接? [复制]

如何通过 JavaScript 获取域名? [复制]