„Wake-on-LAN“ (WoL) yra Ethernet arba token ring kompiuterių tinklo standartas, leidžiantis kompiuterį įjungti arba pažadinti tinklo pranešimu.
- Paprastai pranešimą į tikslinį kompiuterį siunčia programa, vykdoma įrenginyje, prijungtame prie to paties vietinio tinklo, pavyzdžiui, išmaniajame telefone.
- Taip pat galima inicijuoti pranešimą iš kito tinklo, naudojant į potinklį nukreiptas transliacijas arba WOL šliuzo paslaugą.
- Lygiaverčiai terminai apima pažadinimą WAN nuotolinio pažadinimo įjungimas LAN įjungimas LAN atnaujinimas LAN atnaujinimas LAN ir pažadinimas LAN.
Veikimo principas
eilutę į int Java
- „Wake-on-LAN“ („WOL“) įgyvendinama naudojant specialiai sukurtą paketą, vadinamą magišku paketu, kuris siunčiamas visiems tinklo kompiuteriams, įskaitant pažadinamą kompiuterį.
- Magiškame pakete yra paskirties kompiuterio MAC adresas ir identifikacinis numeris, įmontuotas kiekvienoje tinklo sąsajos plokštėje (NIC) arba kituose kompiuterio eterneto įrenginiuose, leidžiančius jį vienareikšmiškai atpažinti ir tinkle adresuoti.
- Išjungtuose arba išjungtuose kompiuteriuose, kuriuose veikia „Wake-on-LAN“, bus tinklo įrenginiai, galintys „klausytis“ gaunamų paketų mažos galios režimu, kai sistema išjungta.
- Jei gaunamas stebuklingas paketas, nukreiptas į įrenginio MAC adresą, NIC signalizuoja kompiuterio maitinimo šaltiniui arba pagrindinei plokštei, kad sistema būtų pažadinta panašiai, kaip būtų daroma paspaudus maitinimo mygtuką.
- Magiškas paketas siunčiamas duomenų perdavimo lygmenyje (2 sluoksnis OSI modelyje), o išsiuntimas transliuojamas į visus prijungtus įrenginius tam tikrame tinkle, naudojant tinklo transliacijos adresą; IP adresas (OSI modelio 3 sluoksnis) nenaudojamas.
Kad „Wake-on-LAN“ veiktų, kai kurios tinklo sąsajos turi likti įjungtos. Tai sunaudoja šiek tiek budėjimo režimo energijos, daug mažiau nei įprasta darbinė galia. Todėl išjungus „wake-on-LAN“, kai to nereikia, gali šiek tiek sumažėti energijos suvartojimas kompiuteriuose, kurie yra išjungti, bet vis tiek įjungti į maitinimo lizdą.
Magiška paketo struktūra
Stebuklingas paketas yra transliacijos kadras, kuriame bet kurioje naudingojoje apkrovoje yra 6 baitai iš visų 255 (FF FF FF FF FF FF šešioliktaine tvarka), po kurių seka šešiolika tikslinio kompiuterio 48 bitų MAC adreso pakartojimų, iš viso 102 baitai.
Kadangi magiškasis paketas nuskaitomas tik pagal aukščiau pateiktą eilutę ir iš tikrųjų neanalizuojamas naudojant visą protokolų krūvą, jis gali būti siunčiamas kaip bet koks tinklo ir transportavimo sluoksnio protokolas, nors paprastai jis siunčiamas kaip UDP datagrama į 0 7 arba 9 prievadą arba tiesiogiai per Ethernet kaip EtherType 0x0842.
java eilučių kūrėjas
Standartinis magijos paketas turi šiuos pagrindinius apribojimus:
- Reikalingas paskirties kompiuterio MAC adresas (taip pat gali reikėti „SecureOn“ slaptažodžio).
- Nepateikite pristatymo patvirtinimo.
- Gali neveikti už vietinio tinklo ribų.
- Reikalingas Wake-On-LAN techninės įrangos palaikymas paskirties kompiuteryje.
- Dauguma 802.11 belaidžių sąsajų nepalaiko ryšio mažos galios būsenose ir negali priimti stebuklingo paketo.
„Wake-on-LAN“ diegimas sukurtas taip, kad būtų labai paprastas ir greitai apdorojamas tinklo sąsajos plokštėje esančiomis grandinėmis su minimaliu energijos poreikiu. Kadangi „Wake-on-LAN“ veikia žemiau IP protokolo sluoksnio, reikalingas MAC adresas, todėl IP adresai ir DNS pavadinimai netenka prasmės.
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; }
Išvestis:
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).
Nuoroda:
https://en.wikipedia.org/wiki/Wake-on-LAN
string.compare c#Sukurti viktoriną