如何使用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
这将包含hostname
和port
作为冒号分隔的字符串,同样需要注意的是,如果通过“默认”端口访问内容,则: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和端口号的主要内容,如果未能解决你的问题,请参考以下文章
如何使用nodejs获取节点docker容器中的主机主目录路径?
如何使用 C# 或 VB.NET 获取当前的本地主机名? [复制]
如何在 iPad 上运行的 iPhone 应用程序中获取 iOS 8 自定义键盘的主机应用程序屏幕几何图形?