Wake on LAN (WoL) — запускать компьютеры по сети

Иногда вы хотите запустить компьютер, не нажимая кнопку питания. И это можно сделать... по сети с помощью технологии под названием Wake on LAN (WoL).

Но как это сделать в AutoHotkey?


person Forivin    schedule 05.04.2015    source источник


Ответы (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
}
person Forivin    schedule 05.04.2015

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

person bgmCoder    schedule 09.04.2015