Page 1 of 1

Wake on lan (WOL) encender un ordenador remotamente via LAN

Posted: Wed Mar 05, 2008 9:55 pm
by JmGarcia
Bueno, pues investigando cosas "raras" me he empapuzado todo lo relacionado con el WAKE ON LAN (abreviadamente WOL).
Es la forma de encender ordenadores (mas bien modernos) remotamente mediante en envío de tramas UDP del protocolo WOL.
Si buscáis por internet teneis todos tipo de información.

Bueno aquí el código fuente (FWH82+xHarbour):

Code: Select all

#include "FiveWin.Ch"

FUNCTION main()
public cIPhost:="192.168.1.10",;       // IP de PC que envia las tramas LAN
       cIPbroadcast:="192.168.1.255",; // Dir.Multicaste de la LAN
       cMACwol:="00-40-63-dc-eb-d4",;  // MAC del ordenador a encender
       cBINwol:="",;
       nPuertoWOL:=1792,; // Puerto protocolo WOL
       pSocket:=0,nSentBytes:=0,cBuffer:=""
cBINwol:=PasaBin(cMACwol)
cBuffer:=replicate(chr(255),6)+replicate(cBINwol,16)
INetInit()
pSocket:=InetDGram(.T.)
nSentBytes:=INetDGramSend(pSocket,cIPbroadcast,nPuertoWOL,cBuffer,len(cBuffer))
INetClose(pSocket)
INetCleanup()
return nil

function PasaBin(cTexto)
local cBin,i
cBin:=""
for i=1 to len(cTexto) step 3
   cBin:=cBin+chr(HexToDec(substr(cTexto,I,2)))
next i
return(cBin)

Posted: Wed Mar 05, 2008 10:16 pm
by Antonio Linares
JM,

Excelente, muchas gracias! :-)

Posted: Wed Mar 05, 2008 11:04 pm
by horacio
Muy bueno !!! un gran aporte.

amigo

Posted: Tue Mar 18, 2008 6:37 pm
by leandro
Amigo primero que todo quiero felicitarte por tan excelente aporte, y te tengo una preguntica, me gustaria saber si se puede iniciar una maquina via internet? y si es asi me podrias faciliar un ejemplo? Muchas Gracias

Re: amigo

Posted: Tue Mar 18, 2008 8:03 pm
by JmGarcia
leandro wrote:...me gustaria saber si se puede iniciar una maquina via internet?...
Puedes poner en la variable cIPbroadcast:="www.foroclipper.com" la direccion URL.
Tendras que hacer NAT (Network Adress Traslation) en el router de esa URL.
Trasladaras el puerto nPuertoWOL:=1792 hacia la direccion IP de la maquina del lan interior que deseas arrancar.