我的网站可以提出本地请求吗?

时间:2016-12-10 02:59:52

标签: javascript http web local

在开发环境中,我的网站可以通过javascript在联网打印机上发出本地请求。

但是,一旦我的网站在线托管,我就无法再访问本地打印机了。我理解为什么如果陌生人通过网络访问我的网站就是这种情况,但如果我访问自己的网站(我的打印机是该计算机的本地网站),我是否可以这样做?

编辑: 这是我在开发中打印的请求,它起作用,因为我的打印机是本地的:'http://192.168.1.100/StarWebPRNT/SendMessage'

1 个答案:

答案 0 :(得分:0)

@ echan00,

我认为原因是您的打印机位于您正在开发的同一网络上。这里的主要问题是IP地址,大多数本地网络的IP地址都以192.168.XXX.XXX开头,因此位于网络上的打印机也包含相同范围内的IP地址。

让我们假设:打印机=> 192.168.1.100和开发机器=> 192.168.1.45

由于这两台机器都在同一网络上,因此它们可以相互通信。一旦您使用提供商托管您的网站,网站的IP地址将不再与您的计算机的IP地址相同,我们假设它收到一个新的IP地址10.1.57.221。

所以现在您的网站在局域网外部托管了一个IP,打印机仍然在局域网上。如果您发现从托管网站发出打印请求http://192.168.1.100/StarWebPRNT/SendMessage时给出的响应,那么您很可能最终达到404或连接超时而不是200成功请求。

解决此问题的一种方法是将网站托管在LAN中的服务器上,但为该计算机提供公共IP地址,以便其他人可以从网络外部访问该网站。当请求打印时,在这种情况下它肯定能找到打印机。

另一种方法是继续托管主机提供商,但为打印机分配公共IP,以便知道IP地址的任何人都可以向打印机发出打印请求。这样,您的网站就可以向打印机发出打印请求。