DIY一个网络唤醒小工具
By
sunbeam
at 2022-01-06 • 1人收藏 • 1338人看过
import win.ui; /*DSG{{*/ mainForm = win.form(text="WakeOnLan";right=599;bottom=399) mainForm.add( button={cls="button";text="唤醒";left=334;top=48;right=435;bottom=78;z=1}; edit={cls="edit";text="2C:56:DC:DB:71:65";left=93;top=48;right=309;bottom=78;edge=1;z=2}; static={cls="static";text="MAC地址";left=34;top=52;right=86;bottom=73;transparent=1;z=3}; static2={cls="static";left=33;top=90;right=487;bottom=114;transparent=1;z=4} ) /*}}*/ import console import wsock.udp.client; WakeUpMac = {0x2C,0x56,0xDC,0xDB,0x71,0x65};//要唤醒的电脑MAC地址,测试用 WakeHost = function(mac){ var txdata = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; for(i=1;16;1){ table.append(txdata,mac); } var buf = raw.buffer(#txdata,0); for(i=1;#txdata;1){ buf[i] = txdata[i]; } var udpClient = wsock.udp.client(); udpClient.setBroadcast(true); udpClient.sendto(buf,"255.255.255.255",9); } mainForm.button.oncommand = function(id,event){ //WakeHost(WakeUpMac);//测试用 var macstr = mainForm.edit.text; if(string.cmpMatch(macstr,"\x\x[-\:]\x\x[-\:]\x\x[-\:]\x\x[-\:]\x\x[-\:]\x\x" )){ var macarr = string.split(macstr,'-:'); for(i=1;#macarr;1){ macarr[i] = tonumber(macarr[i],16); } WakeHost(macarr); mainForm.static2.text = macstr ++ "正在唤醒" } else { //MAC字符串错误 mainForm.static2.text = "MAC地址错误" } } mainForm.show(); return win.loopMessage();
最近需要搞网络唤醒,没找到合适的工具,就打算自己动手做一个,下午搞了个demo,实测可以唤醒主机了
看论坛里没有,跟大家分享一下
3 个回复 | 最后更新于 2022-01-07
登录后方可回帖
谢谢分享, 学习了.
网络唤醒的原理是啥? 是发送任意字符到要唤醒的设备就可以了吗?