就是字面意思, 比如人在外面玩, 只需要手機一點,即可將家里的電腦打開.這個東西其實也沒啥好解釋的. 不想在遇到群里的那種無腦杠的人, 我想用軟件實現(xiàn)這個功能, 非得說讓我買個硬件放在家里.對不起,我沒錢...
遠程喚醒功能需要主板支持, 理論上10年內(nèi)買的電腦, 主板上都有這個功能, 如果沒有,那就用不了這個,只能自己買硬件去吧.首先說一下整個流程的配置.
第一步 先檢查自己的主板bios里面有沒有wol的開啟功能,具體的開啟步驟,我不說,這個自行百度一下, 因為主板型號不同,開啟的地方不一樣,所以用你的"主板型號+怎么開啟wakeuponline功能" 當(dāng)關(guān)鍵詞去百度搜索,把wol功能打開. 至于說什么要去windows系統(tǒng)的硬件管理中 允許網(wǎng)卡喚醒啟動的設(shè)置呢, 可開可不開, 我是沒設(shè)置系統(tǒng)的限制,都是默認(rèn), 也能從遠程正常喚醒
第二步 設(shè)置路由器,路由器上做端口映射,有些路由叫虛擬服務(wù)器啥的,也有不同的叫法, 目的是將內(nèi)網(wǎng)機器的端口映射到wan口,在外網(wǎng)可以訪問到這個端口. 端口號固定是9號端口,這里截圖你們自己對照看一下自己的路由器怎么設(shè)置.

端口映射出去之后, 一般家里的IP都是動態(tài)IP, 經(jīng)常會變,這里我們再設(shè)置一下DDNS(動態(tài)域名), 域名呢, 可以自己找免費的,也可以自己花個一二十塊錢買個垃圾點的域名. 常見的有什么花生殼啦, dnspod啦,都可以做DDNS服務(wù),這個一般路由器上也都有的, TPLINK 水星什么的也都有預(yù)設(shè)這個功能. 所以也不是什么難點.
最后一步就是用autojs去喚醒了, 代碼也很簡單, 此代碼是從google上隨便搜的, 然后改成autojs可用的. 但是貌似在局域網(wǎng)直接用IP來喚醒,好像無效, 然后我也沒怎么研究, 本來內(nèi)網(wǎng)喚醒,不是本次研究的重點. 所以怎么遠程喚醒,才是重點...
那么重點來了, 上代碼:
var domainName = "ddns.XXXX.online";
 //mac地址是冒號為分隔符的格式,不要用其他格式
 var macAddress = "00:8d:5c:88:94:b5";
 var wol = new wakeUpOnline();
 var res = wol.wakeUp(domainName, macAddress, 9);
 log(res);
 function wakeUpOnline() {
     importClass(java.net.InetAddress);
     importClass(java.net.DatagramPacket);
     importClass(java.net.DatagramSocket);
     importClass(java.lang.Integer);
     importClass(java.lang.System);
     /**
      * 使用autojs在外網(wǎng)遠程打開局域網(wǎng)內(nèi)的電腦 本方法僅用于外網(wǎng). 不適用于無線網(wǎng)卡
      * @param {string} host     路由器的wan口iP或者域名
      * @param {string} mac      被遠程開機電腦的網(wǎng)卡mac地址
      * @param {int} port        開機端口號, 內(nèi)網(wǎng)為9號端口. 這里填你映射出去的端口號
      * @returns 
      */
     this.wakeUp = function(host, mac, port) {
         try {
             let macBytes = getMacBytes(mac);
             let bytes = util.java.array('byte', 6 + 16 * macBytes.length);
             for (let i = 0; i < 6; i++) {
                 bytes[i] = 0xff - 256;
             }
             for (let i = 6; i < bytes.length; i += macBytes.length) {
                 System.arraycopy(macBytes, 0, bytes, i, macBytes.length);
             }
             let address = InetAddress.getByName(host);
             let packet = new DatagramPacket(bytes, bytes.length, address, port);
             let socket = new DatagramSocket();
             socket.send(packet);
             socket.close();
             return "wol_package_sent_success";
         } catch (e) {
             console.log("錯誤信息: ", e.message);
             console.log("錯誤發(fā)生在第%s行", e.lineNumber);
             console.log("錯誤文件", e.fileName);
             return "wol_package_sent_fail";
         }
     }
     function getMacBytes(mac) {
         let bytes = util.java.array('byte', 6);;
         let hex = mac.split(":");
         if (hex.length != 6) {
             throw "Invalid MAC address.";
         }
         try {
             for (let i = 0; i < 6; i++) {
                 int = Integer.parseInt(hex[i], 16);
                 if (int > 127) {
                     int = int - 256;
                 }
                 bytes[i] = int;
             }
         } catch (e) {
             console.log("錯誤信息: ", e.message);
             console.log("錯誤發(fā)生在第%s行", e.lineNumber);
             console.log("錯誤文件", e.fileName);
             throw "Invalid hex digit in MAC address.";
         }
         return bytes;
     }
 }
實現(xiàn)遠程開機的功能就這么簡單. 可以自己再寫個UI界面來包裝一下.好了,這次的分享就這么多.
- 
                                IP
                                +關(guān)注
關(guān)注
5文章
1840瀏覽量
154634 - 
                                域名
                                +關(guān)注
關(guān)注
0文章
78瀏覽量
11618 - 
                                端口
                                +關(guān)注
關(guān)注
4文章
1092瀏覽量
33692 
發(fā)布評論請先 登錄
如何實現(xiàn)遠程登錄ssh并配置為開機啟動
python黑客操作:遠程開機和關(guān)機
如何用Java實現(xiàn)遠程開關(guān)機
NodeMCU實現(xiàn)遠程電腦開關(guān)機
如何去實現(xiàn)一種基于RT-Thread+RA6M4的遠程開機助手設(shè)計
Python+微信一鍵連接實現(xiàn)遠程管理Windows10操作系統(tǒng)的開機和關(guān)機
使用單片機實現(xiàn)開機開機顯示PC機時分秒的時鐘的仿真文件免費下載
手機控制NodeMCU實現(xiàn)遠程電腦開關(guān)機
    
基于MPSOC實現(xiàn)HDMI開機畫面顯示
    
Autojs多卡手機后臺靜默發(fā)送短信
如何在Autojs中優(yōu)雅的使用webView
    
Autojs后臺靜默發(fā)短信
如何使用Autojs給指定QQ好友點贊
如何實現(xiàn)AB PLC遠程監(jiān)控
    
          
        
        
Autojs如何實現(xiàn)WakeUpOnline遠程開機
                
 
           
            
            
                
            
評論