通过javascript从浏览器唤醒局域网

时间:2016-05-27 19:42:05

标签: javascript google-chrome-extension lan wake-on-lan browser-security

是否可以从浏览器向本地网络上的计算机发送唤醒命令(无服务器端代码)。 我完全控制了网络。 我想从通过wifi在平板电脑上运行的浏览器到同一局域网上的有线计算机。 我找到了一些Node.JS JavaScript代码:https://github.com/agnat/node_wake_on_lan/blob/master/wake_on_lan.js 但我不知道它是否适用于浏览器。

4 个答案:

答案 0 :(得分:1)

您需要在系统调用之间使用某种形式的接口来发送“魔术数据包”和您的Javascript。在我看来,如果没有能够使用系统调用的某种形式的后端巫术,你将无法做到这一点。根据我的经验,Javascript仅限于在客户端执行操作,并且能够与服务器端进行通信,但无法控制。

但话说回来,我不是网络开发者。我有限的网络体验告诉我,你需要与你的操作系统交谈,最终会发送WoL魔术包。

答案 1 :(得分:1)

Nodejs专门用于编写服务器端代码。没有服务器就无法做到这一点。但是,您可以购买像树莓派这样的小型计算机作为您的服务器。

你必须:

  • 购买一台简单的小型计算机,如覆盆子pi或类似的东西。(这台电脑需要一直打开)
  • 在其上安装节点。
  • 为覆盆子编写一些javascript来从互联网上获取命令(如浏览器扩展名),然后可以发送本地"魔术数据包"到了你想要醒来的电脑。
  • 然后制作一个客户端程序。比如浏览器扩展程序或可以将http内容发送到服务器的Android应用程序(raspberry pi)。

为了编写服务器代码,您可以使用https://www.npmjs.com/package/node-wol这是一个节点库。

答案 2 :(得分:0)

Node是基于服务器端的,它使用Javascript Runtime Environment,它不会让你运行你没有权限的东西。

ZuLukas非常正确。使用纯JavaScript代码无法做到这一点。 你可能会在这里找到一些东西: https://github.com/hypery2k/cordova-wol-plugin 我打赌这将是你最好的尝试而不费力。

您需要学习PhoneGap,然后才能构建混合应用程序。 但是,请注意:JavaScript无法做到这一点。你要用javascript来编写代码,它会调用本机资源,而不会在浏览器环境中运行

答案 3 :(得分:0)

不,你不能。

WoL需要将UDP广播包发送到LAN。但浏览器不会公开UDP包的任何API。

您需要服务器端编码或浏览器插件。您可以编写自己的使用udp api的插件。