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, чтобы компьютер мог получать волшебный пакет на своей сетевой карте.

Другие вопросы по тегам