Javascript - 简单地识别浏览器连接到哪个网络

Javascript - Simply identify on which network the browser is connected

我设置了一个节点 js 网络服务器,它在 JSON 文件中提供图像 links。一个 link 指的是互联网上的图像,另一个 link 指的是我家庭服务器中的本地目录。

网络服务器在线,不在我的家庭服务器上。 出于带宽使用目的,Web 服务器仅提供图像link。如果客户端通过我的家庭连接连接,它使用本地 link,如果不是,它使用互联网 link.

目前,我在客户端提供一个包含 link 的 JSON 文件,并且总是 select 互联网文件,因为我不知道如何制作客户知道他在我的本地网络上。

有什么东西存在吗?我已经研究了如何获取路由器的 mac 地址(第一跳)、网络 ssid,...但它似乎无法仅通过 JavaScript.

实现

所以,基本上,这是我的设置:

家庭网络:

网络托管内容:

在任何情况下,客户端都需要互联网连接,因为节点服务器在线。但是,如果客户端与本地家庭服务器在同一个(我的本地网络)网络上,他应该使用本地 links 获取图像。

我需要以下两种解决方案之一:

你将不得不在服务器端写一些东西,让它工作。

只有服务器可以判断客户端是否与服务器在同一个网络上。客户端JS根本无法访问网络信息。

你会这样做:

根据客户端请求,服务器:

  • 检查客户端的连接IP是否为本地。
  • 如果是这样,请设置某种客户端可以读取的布尔值。
  • 客户端然后根据该布尔值选择本地或远程 url 集合。

选择 url 要包含在您的页面中的内容稍微简单一些:

根据客户端请求,服务器:

  • 检查客户端的连接IP是否为本地。
  • 如果是,则在请求的网页中包含本地 url。否则,包括远程 urls.