www.SAMURAJ-cz.com 

26.04.2024 Oto Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Samuraj Wake On LAN Command Line - aplikace sWOLcmd

Středa, 13.08.2008 17:08 | Samuraj - Petr Bouška |
sWOLcmd je program, který slouží ke vzdálenému zapnutí (probuzení) počítače zasláním speciálního rámce, který se nazývá Magic Packet. Tato technologie se označuje jako Wake On LAN nebo Magic Packet Technology. Program funguje z příkazové řádky, nemá tedy žádné grafické rozhranní, a musíte zadat nějaké parametry. Výhodou je, že jej lze použít v různých skriptech. Je možno jej použít v rámci jednoho subnetu nebo i vzdáleně (přes internet).

sWOLcmd verze 1.0

sWOLcmd je program, který slouží ke vzdálenému zapnutí (probuzení) počítače zasláním speciálního rámce, který se nazývá Magic Packet. Tato technologie se označuje jako Wake On LAN nebo Magic Packet Technology. Program funguje z příkazové řádky, nemá tedy žádné grafické rozhranní, a musíte zadat nějaké parametry. Výhodou je, že jej lze použít v různých skriptech.

Probuzení počítače většinou bezproblémově funguje v rámci stejného subnetu. Tato aplikace funguje i pro případ, kdy je cílový počítač v jiném subnetu, teoreticky i přes internet, ale musí být splněno několik podmínek (viz. dále).

Stažení aplikace pro 32bitové Windows sWOLcmd (komprimováno pomocí ZIP).

Oficiální stránka k programu je Samuraj Wake On LAN Command Line - sWOLcmd

Dále se můžete podívat na:

Použití sWOLcmd

Základní požadavek je, aby buzená stanice měla povolené probuzení ze sítě (Wake On LAN) a byla v soft shutdown. To znamená, že síťová karta je napájená i při vypnutém počítači a je přepnuta do módu Magic Packet. A samozřejmě musí být přes síť (ethernet) propojena se stanicí, kde spouštíme tuto aplikaci.

sWOLcmd

Aplikace se spouští z příkazové řádky a je možné použít jeden nebo více parametrů. Vždy je třeba zadat minimálně MAC adresu stanice, kterou chceme probudit.

Pozn.: MAC adresa se používá k identifikaci stanice, protože je uložena v paměti síťového adaptéru.

Volání aplikace vypadá:

swolcmd -m MAC_address [-i IP_address] [-s subnet_mask] [-p UDP_port] [-c compact_mode]

Možné parametry jsou:

  • -m MAC_address  [povinně]   MAC adresa buzeného počítače. Jedná se o 6 hexadecimálních čísel (00 až FF), která můžeme oddělit znaky - : . nebo ničím.
  • -i IP_address   [volitelně] IP adresa buzeného počítače. Používá se, pokud je počítač v jiném subnetu, v tom případě je potřeba zadat dohromady s maskou. Zadává se jako 4 desítková čísla (0 až 255) oddělená tečkou.
  • -s subnet_mask  [volitelně] Maska podsítě buzeného počítače, ve formě dot-decimal (4 desítková čísla oddělená tečkou) nebo CIDR (/počet_jedničkových_bitů).
  • -p UDP_port     [volitelně] Magic Packet se posila jako UDP, zde můžete zadat libovolný port 0-65536. Defaultně je 9.
  • -c compact_mode [volitelně] Aby se zvýšila pravděpodobnost probuzení počítače, tak se někdy posílají až 3 různé rámce (pakety). Nastavením -c 1 se vždy pošle pouze jeden. Defaultně je 0 (vypnuto).

V jakých situacích jaké parametry zadat

Základní rozlišení je, zda je buzená stanice ve stejné podsíti (subnetu) jako stanice, kde používáme sWOLcmd.

Stanice jsou ve stejném subnetu

Používá se broadcast, stačí zadat MAC adresu buzené stanice.

D:\sWOLcmd>swolcmd -m 00:1f:c6:4f:63:f9 

Stanice jsou v různých subnetech

Používá se směrovaný broadcast na cílový subnet, ale tato metoda musí být povolena na posledním routeru v cestě.  Můžeme buď sami spočítat broadcast adresu subnetu a zadat pouze MAC adresu a IP adresu.

D:\sWOLcmd>swolcmd -m 00:1f:c6:4f:63:f9 -i 192.168.10.255 

Nebo necháme adresu spočítat aplikaci, pak musíme zadat MAC adresu, IP adresu (kterou naposled měla buzená stanice, ale stačí libovolná ze stejného subnetu) a masku podsítě.

D:\sWOLcmd>swolcmd -m 00:1f:c6:4f:63:f9 -i 192.168.10.15 -s 255.255.255.0 

Masku můžeme zadat nejen tradičním desítkovým zápisem s tečkami, ale také pomocí CIDR (počet jedničkových bitů v masce).

D:\sWOLcmd>swolcmd -m 00:1f:c6:4f:63:f9 -i 192.168.10.15 -s /24 

Stanice jsou v různých subnetech - speciální situace

V některých případech se dá použít ještě jedna metoda a to je zaslání Magic Packetu pomocí unicastu. Tím se objede problém povolení směrovaných broadcastů na routeru, ale zase je zde problém s vypršením ARP cache na routeru. Ve chvíli, kdy se na routeru smaže ARP záznam pro stanici, kterou chceme vzbudit, tak metoda přestane fungovat. Zaslaní zařídíme tak, že zadáme MAC adresu, IP adresu, ale nezadáme masku.

D:\sWOLcmd>swolcmd -m 00:1f:c6:4f:63:f9 -i 192.168.10.15 

Jak sWOLcmd pracuje

Pár informací o tom, jak je sWOLcmd naprogramován. Prvně je třeba poznamenat, že tato aplikace není zrovna moc efektivní, hlavně co do velikosti souboru. Je totiž napsána v PHP a následně převedena na spustitelný soubor pomocí Bambalam PHP EXE Compiler/Embedder 1.21. PHP není zrovna jazyk pro takovéto účely, ale jednoduše se použije a aplikace je korektně funkční.

Aplikace sestavuje paket pro odeslání. Do datového obsahu se použije cílová MAC adresa. Dále se nastavují IP adresy na 3. vrstvě OSI modelu. Zdrojová se doplňuje automaticky. Cílová se v lokálním případě nastaví na broadcast adresu, tedy 255.255.255.255. V případě zadání cílové IP adresy a masky se vypočítá broadcast adresa subnetu a použije se ta. Pokud se zadá pouze IP adresa, tak se paket odešle jako unicast přímo na tuto adresu.

MAC adresy v rámci (2. vrstva OSI modelu) se nastavují automaticky na nižší síťové vrstvě. V případě lokálního broadcastu se použije FF:FF:FF:FF:FF:FF. V případě směrovaného broadcastu nebo unicastu se použije MAC adresa routeru (brány). Pokud je směrovaný broadcast zaměřen na aktuální subnet, tak se rovnou převede na normální broadcast.

Aplikace se standardně snaží použít co nejvíce možných metod (pokud se nepoužije přepínač -c 1), aby se zvýšila pravděpodobnost probuzení stanice. Takže v případě směrovaného broadcastu se odešle také lokální broadcast (co kdyby cílová stanice byla přece jen ve stejném subnetu), unicast (kdyby byl na routeru ještě ARP záznam, obejde se problém s povolením směrových broadcastů) a naposled ten plánovaný směrovaný broadcast.

Vše o Wake On LAN

Podrobně jsem celou technologii Wake On LAN, včetně všech variant a řady problémů, popsal na svém webu v článku Wake on LAN - lokální i vzdálený subnet.

Související síťovou teorii naleznete v článcích:

Licence

Program sWOLcmd je poskytován zdarma jako freeware. Je možné jeho libovolné bezplatné šíření a používání v komerčním i soukromém sektoru. Zároveň je tento program poskytován bez jakékoliv záruky.

zobrazeno: 39882krát | Komentáře [6]

Autor:

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] Jurdis

    Vzbudim pocitac s neverejnou IP adresou?

    Úterý, 27.10.2009 10:02 | odpovědět
  2. [2] Jiří Krčmář

    Zdravím, s probuzením počítače v jednom subnetu problem nemam, ale pokud ho chci probudit přes internet, protože je za routerem. Zkoušel jsem zadávat v parametrech příkazů různé MAC, IP i masky, ale nepodařilo. V nastaveni routeru jsem povolil port 9 pro příslušnou lan IP. Co je nutné ještě nastavit a jak. Protože když je počítač vypnutý delší dobu, adresa už není v tabulce a router neví, kam má vlastně paket přesměrovat. Díky za radu.

    Sobota, 26.06.2010 19:15 | odpovědět
  3. [3] IT specialista

    to Jiří, podle mého je dobré mít na routeru DHCP, pak tuto informaci bude mít stále. Mám nastaven port forwarding a wake-up funguje. MAC adresa musí být toho cílového PC.

    Pátek, 20.05.2011 14:08 | odpovědět
  4. [4] DJ

    Mam za routerem nastavenou pevnou IP ..na routeru (Dlink) nastaveno DMZ. Probudim pres net jen kratce po vypnuti jinak to nejde. Nasel jsem skulinu tak, ze pres webove rozhrani rebootnu router a PC se pak probudi. Stale hledam reseni. Prijde mi to jako ze router neudrzi napajeni do sitovky, jinak si to nedovedu vysvetlit.

    Pokud se s tim nekdo setkal a vyresil pls napovezte :D

    Středa, 09.10.2013 17:21 | odpovědět
  5. [5] selfish

    odpověď na [4]DJ:

    Chvili po vypnuti.. to by mohl byt nejaky arp timeout. V pripade unicastu by pak router nevedel kudy to ma poslat ven? Nepomohlo by to zkusit uz v danem subnetu poslat jako multicast? - jen hadam

    Středa, 02.04.2014 23:24 | odpovědět
  6. [6] Zdenek

    Na obyčejných SOHO routerech to obvykle nefunguje - chybí funkce statické ARP zápůjčky nebo možnost spouštět linuxové skripty a webserver. Pokud je Váš router podporován DD-WRT, můžete si vše potřebné přidat. Nejjednodušší je statické ARP a je na to oficiální návod. Alternativně je možné rozchodit webserver s PHP a ten použít jako "bránu" do místního segmentu. Ale to je daleko složitější.

    Sobota, 05.07.2014 20:13 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách