Javascript - 只需确定浏览器连接的网络

时间:2015-06-15 13:57:17

标签: javascript jquery node.js network-programming

我设置了一个节点js web服务器,它服务于JSON文件中的图像链接。一个链接指的是互联网上的图像,另一个链接指的是我家庭服务器中的本地目录。

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

目前,我提供包含链接的JSON文件,并始终在客户端选择互联网,因为我不知道如何让客户了解他在我的本地网络上。

有什么东西存在吗?我已经研究过获取路由器的mac地址(第一跳),网络ssid,......但它似乎只能通过JavaScript实现。

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

家庭网络:

  • 家庭服务器(本地存储的图像)
  • 通过此连接连接的潜在客户

网络托管内容:

  • Web服务器(节点js)
  • FTP(存储的图像)
  • 潜在客户连接

在任何情况下,客户端都需要互联网连接,因为节点服务器在线。但是,如果客户端与本地主服务器位于同一(我的本地网络)网络,则应使用本地链接获取映像。

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

  • 客户端知道他是否在我的本地网络上,然后拿起 良好的链接
  • Web服务器知道客户端的来源,并直接提供服务 良好的链接(所以,在客户端没有问题)。这个问题是我的网络服务器没有托管在我的家庭网络上。

1 个答案:

答案 0 :(得分:3)

你必须在服务器端写一些东西,才能让它发挥作用。

服务器可以判断客户端是否与服务器位于同一网络中。客户端JS根本无法访问网络信息。

您可以这样做:

在客户端请求中,服务器:

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

选择要包含在网页中的网址有点简单:

在客户端请求中,服务器:

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