Ohjelma käynnistää tietokoneen etänä Internetin kautta Wake-on-LAN-protokollan avulla.

Wake-on-LAN (WoL) on Ethernet- tai token ring -tietokoneverkkostandardi, jonka avulla tietokone voidaan käynnistää tai herättää verkkoviestillä. 

  • Viesti lähetetään yleensä kohdetietokoneelle samaan lähiverkkoon kytketyllä laitteella, kuten älypuhelimella, suoritettavalla ohjelmalla.
  • Viesti on myös mahdollista käynnistää toisesta verkosta käyttämällä aliverkkoon suunnattuja lähetyksiä tai WOL-yhdyskäytäväpalvelua.
  • Vastaavia termejä ovat wake on WAN etäherätys käynnistyy LAN:lla käynnistys lähiverkolla jatkaminen lähiverkolla jatkaminen lähiverkossa ja herätys LAN-verkossa.

Toimintaperiaate  

  • Wake-on-LAN ('WOL') toteutetaan käyttämällä erityisesti suunniteltua pakettia, jota kutsutaan taikapaketiksi ja joka lähetetään kaikille verkon tietokoneille, mukaan lukien herätettäville tietokoneille.
  • Taikapaketti sisältää kohdetietokoneen MAC-osoitteen ja jokaiseen verkkokorttiin ("NIC") tai muihin tietokoneen ethernet-laitteisiin sisäänrakennetun tunnistenumeron, joka mahdollistaa sen yksilöllisen tunnistamisen ja osoitteen verkossa.
  • Sammutetut tai sammutetut tietokoneet, jotka kykenevät Wake-on-LAN-toimintoon, sisältävät verkkolaitteita, jotka pystyvät "kuuntelemaan" saapuvia paketteja virransäästötilassa, kun järjestelmästä on katkaistu virta.
  • Jos vastaanotetaan taikapaketti, joka on suunnattu laitteen MAC-osoitteeseen, verkkokortti antaa tietokoneen virtalähteelle tai emolevylle signaalin käynnistääkseen järjestelmän heräämisen pitkälti samalla tavalla kuin virtapainikkeen painaminen tekisi.
  • Magic-paketti lähetetään datalinkkikerroksessa (kerros 2 OSI-mallissa) ja lähetyksen jälkeen se yleislähetetään kaikille liitetyille laitteille tietyssä verkossa käyttämällä verkon yleislähetysosoitetta; IP-osoitetta (kerros 3 OSI-mallissa) ei käytetä.

Jotta Wake-on-LAN toimisi, verkkoliitännän osien on pysyttävä päällä. Tämä kuluttaa pienen määrän valmiustilatehoa paljon vähemmän kuin normaali käyttöteho. Wake-on-LAN-toiminnon poistaminen käytöstä, kun sitä ei tarvita, voi siksi hieman vähentää virrankulutusta tietokoneissa, jotka ovat sammutettuja mutta silti kytkettynä pistorasiaan.

Magic-pakettirakenne  
Taikapaketti on yleislähetyskehys, joka sisältää missä tahansa hyötykuormassaan 6 tavua kaikista 255:stä (FF FF FF FF FF FF heksadesimaalimuodossa), jota seuraa kuusitoista kohdetietokoneen 48-bittisen MAC-osoitteen toistoa yhteensä 102 tavua. 
Koska maaginen paketti skannataan vain yllä olevaa merkkijonoa varten eikä sitä tosiasiassa jäsennä täysi protokollapino, se voidaan lähettää minkä tahansa verkko- ja siirtokerroksen protokollana, vaikka se lähetetään tyypillisesti UDP-datagrammina porttiin 0 7 tai 9 tai suoraan Ethernetin kautta EtherType 0x0842:na.

Tavallisella taikapaketilla on seuraavat perusrajoitukset:   

  1. Edellyttää kohdetietokoneen MAC-osoitetta (saattaa vaatia myös SecureOn-salasanan).
  2. Älä anna toimitusvahvistusta.
  3. Ei ehkä toimi paikallisverkon ulkopuolella.
  4. Edellyttää kohdetietokoneen Wake-On-LAN-laitteistotukea.
  5. Useimmat langattomat 802.11-liitännät eivät ylläpidä linkkiä pienitehoisissa tiloissa eivätkä voi vastaanottaa taikapakettia.

Wake-on-LAN-toteutus on suunniteltu erittäin yksinkertaiseksi ja nopeasti prosessoitavaksi verkkoliitäntäkortilla olevalla piirillä minimaalisella virrankulutuksella. Koska Wake-on-LAN toimii IP-protokollakerroksen alapuolella, MAC-osoite vaaditaan ja tekee IP-osoitteista ja DNS-nimistä merkityksettömiä.

C
   // C program to remotely Power On a PC over the   // internet using the Wake-on-LAN protocol.   #include         #include         #include         #include         #include         #include          #include         #include         int     main  ()   {      int     i  ;      unsigned     char     toSend  [  102  ]  mac  [  6  ];      struct     sockaddr_in     udpClient       udpServer  ;      int     broadcast     =     1     ;      // UDP Socket creation      int     udpSocket     =     socket  (  AF_INET       SOCK_DGRAM       0  );      // Manipulating the Socket      if     (  setsockopt  (  udpSocket       SOL_SOCKET       SO_BROADCAST        &  broadcast       sizeof     broadcast  )     ==     -1  )      {      perror  (  'setsockopt (SO_BROADCAST)'  );      exit  (  EXIT_FAILURE  );      }      udpClient  .  sin_family     =     AF_INET  ;      udpClient  .  sin_addr  .  s_addr     =     INADDR_ANY  ;      udpClient  .  sin_port     =     0  ;      //Binding the socket      bind  (  udpSocket       (  struct     sockaddr  *  )  &  udpClient       sizeof  (  udpClient  ));      for     (  i  =  0  ;     i   <  6  ;     i  ++  )      toSend  [  i  ]     =     0xFF  ;      // Let the MAC Address be ab:cd:ef:gh:ij:kl      mac  [  0  ]     =     0xab  ;     // 1st octet of the MAC Address      mac  [  1  ]     =     0xcd  ;     // 2nd octet of the MAC Address      mac  [  2  ]     =     0xef  ;     // 3rd octet of the MAC Address      mac  [  3  ]     =     0  xgh  ;     // 4th octet of the MAC Address      mac  [  4  ]     =     0  xij  ;     // 5th octet of the MAC Address      mac  [  5  ]     =     0  xkl  ;     // 6th octet of the MAC Address      for     (  i  =  1  ;     i   <=  16  ;     i  ++  )      memcpy  (  &  toSend  [  i  *  6  ]     &  mac       6  *  sizeof  (  unsigned     char  ));      udpServer  .  sin_family     =     AF_INET  ;      // Broadcast address      udpServer  .  sin_addr  .  s_addr     =     inet_addr  (  '10.89.255.255'  );      udpServer  .  sin_port     =     htons  (  9  );      sendto  (  udpSocket       &  toSend       sizeof  (  unsigned     char  )     *     102       0        (  struct     sockaddr  *  )  &  udpServer       sizeof  (  udpServer  ));      return     0  ;   }   

Lähtö: 

 This program will power on the switched-off PC   
whose MAC Address is used in this program (the
PC and the Host computer must be connected over
LAN).

Viite:  
https://en.wikipedia.org/wiki/Wake-on-LAN
 

Luo tietokilpailu