Wake on LAN (WoL) - запуск компьютеров по сети
Иногда вы хотите запустить компьютер, не нажимая кнопку питания. И это может быть сделано.. по сети, используя технологию под названием Wake on LAN (WoL).
Но как это сделать в AutoHotkey?
2 ответа
Чтобы разбудить компьютер по локальной сети, вам нужно создать и отправить так называемый волшебный пакет. Все, что вам нужно знать, это MAC-адрес вашего целевого компьютера. Также убедитесь, что он правильно настроен для WoL.
Пробуждение компьютера можно сделать довольно легко, используя библиотеку сокетов в AHK:
#include Socket.ahk ;http://pastebin.com/CtM9p4QG
WakeOnLAN("AABBCCDDEEFF") ;Example - use the mac address of your target here
ExitApp
WakeOnLAN(mac) {
magicPacket_HexString := GenerateMagicPacketHex(mac)
size := CreateBinary(magicPacket_HexString, magicPacket)
UdpOut := new SocketUDP()
UdpOut.connect("addr_broadcast", 9)
UdpOut.enableBroadcast()
UdpOut.send(&magicPacket, size)
}
GenerateMagicPacketHex(mac) {
magicPacket_HexString := "FFFFFFFFFFFF"
Loop, 16
magicPacket_HexString .= mac
Return magicPacket_HexString
}
CreateBinary(hexString, ByRef var) { ;Credits to RHCP!
sizeBytes := StrLen(hexString)//2
VarSetCapacity(var, sizeBytes)
Loop, % sizeBytes
NumPut("0x" SubStr(hexString, A_Index * 2 - 1, 2), var, A_Index - 1, "UChar")
Return sizeBytes
}
Вы можете использовать Softperfect Network Scanner (тот, у которого есть футбольный мяч для значка), а затем использовать AutoHotkey для отправки ему командных строк. Вы также можете запустить его переносимо, так что вам даже не нужно ничего устанавливать.
netscan := "c:\program files\netscan\netscan.exe"
run, %netscan% /wol:AA:EE:73:43:BB:73
Синтаксис командной строки для netscan находится внизу страницы документов.
/ wol: MAC отправляет магический пакет Wake-On-LAN на указанный MAC-адрес и немедленно завершает работу. Пример: / wol: AABBCCDDEEFF.
/wolfile:filename.txt позволяет указать текстовый файл с MAC-адресами для пробуждения, например /wolfile:c:\myfile.txt, где файл представляет собой простой текстовый файл, содержащий один MAC-адрес на строку.
/ wakeall отправляет пакет WOL всем компьютерам, настроенным в диспетчере WOL, и немедленно завершает работу.
Но имейте в виду, что вы должны включить опцию в BIOS, чтобы компьютер мог получать волшебный пакет на своей сетевой карте.