Program a számítógép távoli bekapcsolására az interneten keresztül a Wake-on-LAN protokoll segítségével.
Wake-on-LAN (WoL) egy Ethernet vagy token ring számítógépes hálózati szabvány, amely lehetővé teszi a számítógép bekapcsolását vagy felébresztését hálózati üzenet hatására.
- Az üzenetet általában egy olyan program küldi el a célszámítógépnek, amely ugyanahhoz a helyi hálózathoz csatlakoztatott eszközön, például okostelefonon fut.
- Lehetőség van az üzenet másik hálózatról történő kezdeményezésére is, alhálózatra irányított sugárzással vagy WOL átjáró szolgáltatással.
- Az egyenértékű kifejezések közé tartozik a Wake on WAN távoli ébresztési bekapcsolás LAN-on keresztüli bekapcsolás a LAN-on keresztül a Folytatás a LAN-on keresztül a Folytatás a LAN-on és az Wake-up on LAN.
Működési elv
- A Wake-on-LAN ('WOL') egy speciálisan kialakított, varázscsomagnak nevezett csomag segítségével valósul meg, amelyet a hálózat összes számítógépére küldenek, köztük az ébresztendő számítógépet is.
- A mágikus csomag tartalmazza a célszámítógép MAC-címét, egy azonosító számot, amely a számítógép minden hálózati interfészkártyájába ("NIC") vagy más Ethernet-eszközbe van beépítve, amely lehetővé teszi az egyedi felismerést és címzést a hálózaton.
- A Wake-on-LAN-ra képes kikapcsolt vagy kikapcsolt számítógépek hálózati eszközöket tartalmaznak, amelyek képesek „hallgatni” a bejövő csomagokat alacsony fogyasztású módban, miközben a rendszer ki van kapcsolva.
- Ha az eszköz MAC-címére irányított varázscsomag érkezik, a hálózati kártya a számítógép tápegységének vagy az alaplapnak jelzi a rendszer felébresztését, nagyjából ugyanúgy, mint a bekapcsológomb megnyomásával.
- A mágikus csomag az adatkapcsolati rétegen (az OSI modellben a 2. rétegen) kerül elküldésre, és elküldéskor egy adott hálózaton lévő összes csatlakoztatott eszközhöz a hálózati sugárzási cím használatával kerül elküldésre; az IP-cím (az OSI modellben 3-as réteg) nincs használatban.
Ahhoz, hogy a Wake-on-LAN működjön, a hálózati interfész egyes részeinek bekapcsolva kell maradniuk. Ez kis mennyiségű készenléti energiát sokkal kevesebbet fogyaszt, mint a normál működési teljesítmény. A wake-on-LAN letiltása, amikor nem szükséges, ezért némileg csökkentheti az energiafogyasztást a kikapcsolt, de konnektorba csatlakoztatott számítógépeken.
Mágikus csomagstruktúra
A mágikus csomag egy broadcast keret, amely a hasznos terhelésen belül bárhol 6 bájtot tartalmaz mind a 255-ből (FF FF FF FF FF FF hexadecimálisan), majd a célszámítógép 48 bites MAC-címének tizenhat ismétlését, összesen 102 bájtot.
Mivel a varázscsomag csak a fenti karakterláncot keresi, és valójában nem elemzi egy teljes protokollverem, elküldhető bármely hálózati és szállítási rétegbeli protokollként, bár általában UDP-datagramként kerül elküldésre a 0 7-es vagy 9-es portra, vagy közvetlenül Etherneten keresztül EtherType 0x0842-ként.
Egy szabványos mágikus csomagnak a következő alapvető korlátai vannak:
- Megköveteli a célszámítógép MAC-címét (szükséges lehet egy SecureOn jelszó is).
- Ne adjon kézbesítési visszaigazolást.
- Előfordulhat, hogy a helyi hálózaton kívül nem működik.
- A Wake-On-LAN hardveres támogatása szükséges a célszámítógépen.
- A legtöbb 802.11 vezeték nélküli interfész alacsony fogyasztású állapotban nem tart fenn kapcsolatot, és nem tud varázscsomagot fogadni.
A Wake-on-LAN megvalósítást úgy tervezték, hogy nagyon egyszerű legyen, és gyorsan feldolgozható legyen a hálózati interfészkártyán lévő áramkörrel, minimális energiaigény mellett. Mivel a Wake-on-LAN az IP-protokollréteg alatt működik, a MAC-címre van szükség, ami értelmetlenné teszi az IP-címeket és a DNS-neveket.
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 ; }
Kimenet:
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).
Hivatkozás:
Kvíz létrehozása
https://en.wikipedia.org/wiki/Wake-on-LAN