Wake On Lan

  • 6 Odpowiedzi
  • 5226 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline marcinwojciesz

  • Moderator Globalny
  • ***** 122
  • 3
  • Nazwa i wersja ID: HC2 4.042, Sterbox
Wake On Lan
« dnia: Marzec 25, 2015, 09:50:50 pm »
Robimy nowe urządzenie wirtualne z portem 80
klejamy

--[[
 %% properties

 %% globals
 --]]

 -- convert MAC adress, every 2 Chars (7-bit ASCII), to one Byte Char (8-bits)
 function convertMacAddress(address)
   local s = string.gsub(address, ":", "");
   local x = "";  -- will contain converted MAC
   for i=1, 12, 2 do
     x = x .. string.char(tonumber(string.sub(s, i, i+1), 16));
   end
   return x;
 end

 fibaro:log("Start process");

 -- MAC adress
 local _macAddress = convertMacAddress("BB:AA:CC:77:88:00");
 -- Create Magic Packet 6 x FF
 local _magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff);
 -- Broadcast Address
 local _broadcastAddress = "255.255.255.255";
 -- Default port used
 local _wakeOnLanPort = 9;

 fibaro:sleep(750);

 for i = 1, 16 do
   _magicPacket = _magicPacket .. _macAddress;
 end

 fibaro:log("Magic packet successfully created");

 fibaro:sleep(1000);

 socket = Net.FUdpSocket();
 socket:setBroadcast(true);

 local bytes, errorCode = socket:write(_magicPacket, _broadcastAddress, _wakeOnLanPort);
 --check for error     
 if errorCode == 0 then
   fibaro:log("Successfully sent");
 else
   fibaro:log("Transfer failed");
 end

 -- clean up memory
 socket = nil;

 fibaro:sleep(1000);
 fibaro:log("Please wait for the server startup."); 



MAC ADRES podmieniamy na własny :)
i smiga

Niestety nie wiem czyj to był projekt :( ale działą i to się liczy.
*

Offline tom3sko

  • ** 94
  • 1
  • Nazwa i wersja ID: HC 2 4.110
Odp: Wake On Lan
« Odpowiedź #1 dnia: Styczeń 30, 2016, 10:30:08 pm »
wszystko śmiga, ale jak sprawdzić czy pakiet dotarł do komputera ?

Wyjaśniam o co mi chodzi:

Jesli komputer odebral pakiet (kabel lan podłączony) to powiedz że komp został włączony

Jeśli komputer nie odebrał pakietu to to powiedz że nie ma komunikacji

Coś na zasadzie pingu z urządzeniem.
*

Offline marecki_0luk1

  • Administratorzy
  • ***** 430
  • 26
  • Nazwa i wersja ID: HC3 5.070.42 / HC2 4.600
Odp: Wake On Lan
« Odpowiedź #2 dnia: Styczeń 30, 2016, 10:59:31 pm »
A moze zrob ping po 15 sekundach?
*

Offline tom3sko

  • ** 94
  • 1
  • Nazwa i wersja ID: HC 2 4.110
Odp: Wake On Lan
« Odpowiedź #3 dnia: Styczeń 30, 2016, 11:07:19 pm »
no to by było najprostsze rozwiązanie, ale komunikat głosowy dostał bym dopiero po 15 sekundach.
Ciekaw jestem czy jest szansa na sprawdzenie czy dany mac adres jest podpiety do rutera, ale wydaje mi się że chyba pakiet w tym skrypcie jest wysyłany na ślepo na wcześniej zdefiniowany mac adres.
*

Offline marecki_0luk1

  • Administratorzy
  • ***** 430
  • 26
  • Nazwa i wersja ID: HC3 5.070.42 / HC2 4.600
Odp: Wake On Lan
« Odpowiedź #4 dnia: Styczeń 30, 2016, 11:19:07 pm »
Mozesz sprawdzax w tabeli klientow w routerze
*

Offline PiotrekS

  • * 13
  • 0
  • Nazwa i wersja ID: PiotrekS
Odp: Wake On Lan
« Odpowiedź #5 dnia: Luty 16, 2016, 12:32:26 pm »
U mnie nie chce to dzialac, ponizej kod jaki mam w wirtualce, na aplikacji mWOL dziala a z Fibaro nie. Mam Wersję 3.6 czy to jest powod?

--[[
 %% properties

 %% globals
 --]]

 -- convert MAC adress, every 2 Chars (7-bit ASCII), to one Byte Char (8-bits)
 function convertMacAddress(address)
   local s = string.gsub(address, ":", "");
   local x = "";  -- will contain converted MAC
   for i=1, 12, 2 do
     x = x .. string.char(tonumber(string.sub(s, i, i+1), 16));
   end
   return x;
 end

 fibaro:log("Start process");

 -- MAC adress
 local _macAddress = convertMacAddress("40:61:86:8B:3C:4C");
 -- Create Magic Packet 6 x FF
 local _magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff);
 -- Broadcast Address
 local _broadcastAddress = "255.255.255.0";
 -- Default port used
 local _wakeOnLanPort = 9;

 fibaro:sleep(750);

 for i = 1, 16 do
   _magicPacket = _magicPacket .. _macAddress;
 end

 fibaro:log("Magic packet successfully created");

 fibaro:sleep(1000);

 socket = Net.FUdpSocket();
 socket:setBroadcast(true);

 local bytes, errorCode = socket:write(_magicPacket, _broadcastAddress, _wakeOnLanPort);
 --check for error     
 if errorCode == 0 then
   fibaro:log("Successfully sent");
 else
   fibaro:log("Transfer failed");
 end

 -- clean up memory
 socket = nil;

 fibaro:sleep(1000);
 fibaro:log("Please wait for the server startup.");
*

Offline PiotrekS

  • * 13
  • 0
  • Nazwa i wersja ID: PiotrekS
Odp: Wake On Lan
« Odpowiedź #6 dnia: Luty 16, 2016, 02:24:22 pm »
Już działa, tu był problem 255.255.255.0  :)