logo

Programma om een ​​pc op afstand in te schakelen via internet met behulp van het Wake-on-LAN-protocol.

Wake-on-LAN (WoL) is een Ethernet- of tokenring-computernetwerkstandaard waarmee een computer kan worden ingeschakeld of gewekt door een netwerkbericht. 

  • Het bericht wordt meestal naar de doelcomputer verzonden door een programma dat wordt uitgevoerd op een apparaat dat is verbonden met hetzelfde lokale netwerk, zoals een smartphone.
  • Het is ook mogelijk om het bericht vanaf een ander netwerk te initiëren door gebruik te maken van subnetgerichte uitzendingen of een WOL-gatewayservice.
  • Equivalente termen zijn onder meer wake-on-WAN, wekken op afstand, inschakelen via LAN, inschakelen via LAN-hervatting, LAN-hervatting op LAN en ontwaken op LAN.

Werkingsprincipe  

  • Wake-on-LAN ("WOL") wordt geïmplementeerd met behulp van een speciaal ontworpen pakket, een magisch pakket genaamd, dat naar alle computers in een netwerk wordt verzonden, waaronder de computer die moet worden gewekt.
  • Het magische pakket bevat het MAC-adres van de bestemmingscomputer, een identificatienummer dat is ingebouwd in elke netwerkinterfacekaart ('NIC') of andere ethernetapparaten in een computer, waardoor deze op unieke wijze kan worden herkend en geadresseerd op een netwerk.
  • Uitgeschakelde of uitgeschakelde computers die Wake-on-LAN kunnen gebruiken, bevatten netwerkapparaten die in de energiebesparende modus naar inkomende pakketten kunnen 'luisteren' terwijl het systeem is uitgeschakeld.
  • Als er een magisch pakket wordt ontvangen dat naar het MAC-adres van het apparaat wordt gestuurd, geeft de NIC een signaal aan de voeding van de computer of het moederbord om het systeem te laten ontwaken, ongeveer op dezelfde manier als het indrukken van de aan/uit-knop zou doen.
  • Het magische pakket wordt verzonden via de datalinklaag (laag 2 in het OSI-model) en wordt bij verzending uitgezonden naar alle aangesloten apparaten op een bepaald netwerk met behulp van het netwerkbroadcastadres; het IP-adres (laag 3 in het OSI-model) wordt niet gebruikt.

Om Wake-on-LAN te laten werken, moeten delen van de netwerkinterface ingeschakeld blijven. Dit verbruikt een kleine hoeveelheid stand-byvermogen, veel minder dan normaal bedrijfsvermogen. Het uitschakelen van wake-on-LAN wanneer dit niet nodig is, kan daarom enigszins variëren en het stroomverbruik enigszins verminderen op computers die zijn uitgeschakeld maar nog steeds op een stopcontact zijn aangesloten.



exemplaar van Java

Magische pakketstructuur  
Het magische pakket is een uitzendframe dat ergens binnen de payload 6 bytes van alle 255 bevat (FF FF FF FF FF FF in hexadecimaal), gevolgd door zestien herhalingen van het 48-bits MAC-adres van de doelcomputer, voor een totaal van 102 bytes. 
Omdat het magische pakket alleen wordt gescand op de bovenstaande string en niet daadwerkelijk wordt geparseerd door een volledige protocolstack, kan het worden verzonden als elk netwerk- en transportlaagprotocol, hoewel het doorgaans wordt verzonden als een UDP-datagram naar poort 0 7 of 9 of rechtstreeks via Ethernet als EtherType 0x0842.

1 van 1000

Een standaard magisch pakket heeft de volgende basisbeperkingen:   

  1. Vereist het MAC-adres van de doelcomputer (vereist mogelijk ook een SecureOn-wachtwoord).
  2. Geef geen leveringsbevestiging.
  3. Werkt mogelijk niet buiten het lokale netwerk.
  4. Vereist hardware-ondersteuning van Wake-On-LAN op de doelcomputer.
  5. De meeste draadloze 802.11-interfaces onderhouden geen verbinding als er weinig stroom is en kunnen geen magisch pakket ontvangen.

De Wake-on-LAN-implementatie is ontworpen om zeer eenvoudig te zijn en snel te kunnen worden verwerkt door de circuits op de netwerkinterfacekaart met een minimaal stroomverbruik. Omdat Wake-on-LAN onder de IP-protocollaag opereert, is het MAC-adres vereist en zijn IP-adressen en DNS-namen betekenisloos.

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] = 0xgh; // 4th octet of the MAC Address  mac[4] = 0xij; // 5th octet of the MAC Address  mac[5] = 0xkl; // 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; } 

Uitgang: 

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).

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

samenvoegen sorteren
Quiz maken