【发布时间】:2020-01-08 10:05:05
【问题描述】:
我有一个 docker 后端和前端在树莓派上的本地网络中运行。如果我现在通过树莓派 IP 地址和正确的端口从网络中的另一台设备访问前端,则前端可以工作,但我的前端没有正确的后端 IP 地址。如果 pi 连接到另一个网络,IP 可能会更改,因此静态 ips 不起作用。如果 localhost 被用作 IP,如果前端是 pi 上的 openend,它就可以工作,但如果它在另一个设备上打开,则 localhost 是错误的。
所以我现在的问题是,如何使用 java 脚本代码在我的前端找到后端的 IP 地址。我需要纯粹通过浏览器端的java脚本来获取后端IP。
我已经尝试将 dns 包用于节点,但这只是用于我不想拥有或查找的外部 IP 地址。我只想找出本地地址,因为我的系统应该只能在本地访问。
编辑:
想法:我可以在 JS 代码(window.location.href)中获取我的前端的 URL,但是如果设置了主机名,htat 可能不是 IP 地址,并且它可能 opr 可能不包含除了端口之外的端口ip/主机名。所以我也无法在每种情况下都获得IP地址。
编辑 2: 现在我解决了这个问题,只需通过 window.location.href 获取 URL,并在“:”之前删除 ip/hostname。但这仅适用于您坚持需要指定并放入 URL 的端口。但它可以作为一种解决方法,直到我找到更好的解决方案。
【问题讨论】:
-
The IP may change if the pi is connedcted to another network......I just want to find out the local address because my system should only be accessible locally....如果 Pi 与“前端”不在同一个 LAN 上,则您无法在本地访问它。 -
是的,这是正确的,但后端和前端始终在 pi 上运行。所以它们总是在同一个网络(后端和前端)中,但是如果它们(后端和前端)都移动到另一个网络,后端就不具有相同的 IP 地址。
-
如果设备在不同的 ip 上则无法工作,或者您必须为后端设备使用静态 ip 地址
-
你是什么意思后端和前端都在pi上运行。这个问题越来越没有意义了。
-
对不起 XD 我真的试着解释清楚:后端 --> Docker NodeJS/Express 运行在 PI 前端 --> Docker ReactJS 运行在 PI 访问:从另一个设备(例如笔记本电脑)
: 后端访问: : 现在我需要在前端 JS 代码中找出笔记本电脑上的 pi-ip
标签: javascript dns ip frontend backend