Wie könnte ich WakeOnLan mit IPS realisieren?

Hallo

wollte mal fragen ob jemand schon WOL mit IPS realisiert hat.
Wenn ich versuche meinem VDR über einen Client Socket das WOL Protokol zu schicken, sagt mir IPS natürlich das der Socket nicht verbunden ist. Klar der is ja auch aus. ;:stuck_out_tongue:

Vielleicht hat ja jemand ne Idee bzw. Lösung.

Gruß Jannis

paresy

Danke schön.

Hat auch gleich funtioniert. Hab leider nur nach WOL und Wakeonlan gesucht und da hat er den Artikel nich gefunden.

Hier noch das Script falls es mal jemand braucht.

$mac = "00E04C603126"; //MAC Adresse des einzuschaltenden Gerätes
 $ip = "255.255.255.255"; // Broadcast adresse

wake($ip,$mac,15);//Port kann irgendwas sein

function wake($ip, $mac, $port)
{
  $nic = fsockopen("udp://" . $ip, $port);
  if($nic)
  {
    $packet = "";
    for($i = 0; $i < 6; $i++)
       $packet .= chr(0xFF);
    for($j = 0; $j < 16; $j++)
    {
      for($k = 0; $k < 6; $k++)
      {
        $str = substr($mac, $k * 2, 2);
        $dec = hexdec($str);
        $packet .= chr($dec);
      }
    }
    $ret = fwrite($nic, $packet);
    fclose($nic);
    if($ret)
      return true;
  }
  return false;
}

Hiho,
ich hab das Script mal grad versucht.
Die MAC vom Lan Adapter rein, IP Adresse nachgefügt, aber will nicht starten.
Muss ich sonst noch was beachten?

Hiho,
also am Script liegts nicht. Auch über das Webfront der Fritzbox will der PC nicht starten.
Nun hab ich im Bios geschaut und find noch nichtmal was im Bios zu Wake on Lan bei Power Management. Gibts dafür noch nen anderen Begriff?
PC ist ein Packard Bell, ca. 6 Monate alt, American Megatrends Bios v02.61.

Ideen?

Gruß
Kai

Hi Kai,

Welche IP-Adresse?

Du musst die Broadcast-Adresse deines Netzwerks einfügen, nicht die IP des Rechner, welchen du erreichen willst! Der hat ja, wenn er gerade „schläft“, keine IP;)

Wenn du WIndows hast musst du mal in den Systemeinstellungen (Hardware) der Netzwerkkarte schauen ob das alles richtig eingestellt ist.

Ist praktisch fertig. Gib mir nen Tag zum Testen und hochladen. Dann geht das damit: Klick

Edit:

Die IPS-Verbindung ist momentan och unidirektional. Aber das wird eine der Nächsten Baustellen.

Toni

Grad geuppt…

Gruß,

Toni

Hallo Zusammen,

Ich habe IPS auf dem Raspberry Pi laufen und habe soeben das Wake on LAN Script ausprobiert. Allerdings erhalte ich folgende Fehlermeldung:
Warning: fsockopen(): unable to connect to udp://255.255.255.255:17 (Permission denied) in /var/lib/symcon/scripts/53674.ips.php on line 9

Hat jemand eine Ahnung, woran das liegt oder was ich falsch mache?

Mit freundliche Grüßen
Ghostrider

Auf Linux dürfen Ports <1024 nur von root aufgemacht werden.

Bei mir funktioniert das Script aus Beitrag 3, wenn ich bei IP die IP des zu weckenden PCs eingebe. Die Variante 255.255.255.0 und 255.255.255.255 klappt nicht.
(Nur nebenbei: Hast du das Aufwecken im Gerätemanager bei der Netzwerkkarte und in BIOS aktiviert?
Bei mir musste ich das „aufwecken erlauben“ bei zB der Maus deaktivieren, da sie ständig Signale gesendet hat und der Rechner keine 2Sek im Standby geblieben ist)
Wie fährst du deinen Win-Rechner (ist es WIN?) in Standby? Ich bekomme das mit den Pstools nicht hin.
Gruß
Matthias

Hallo,

danke für die schnellen antworten.
Der erste Tipp mit dem Port funktioniert leider nicht. Wenn ich einen Port über 1024 wähle, kommt die selbe Fehlermeldung.

Ja, WoL ist im Bios aktiviert. Mit IP Symcon auf nem Windows Rechner funktioniert das Script ja auch, nur nicht auf dem Raspberry Pi.

Mit freundlichen Grüßen
Ghostrider

Hi,

hast Du das lösen können?
Bin auch am Rechteproblem gescheitert.

Danke, Sebastian

Hab es damit hinbekommen:

<?php
# Wake on LAN - (c) HotKey (at SPR dot AT), upgraded by Murzik <tomurzik@inbox.ru>

flush();

function WakeOnLan($addr, $mac)
{
$addr_byte = explode(':', $mac);
$hw_addr = '';

for ($a=0; $a < 6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a]));

$msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);

for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr;

// send it to the broadcast address using UDP
// SQL_BROADCAST option isn't help!!
$s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
if ($s == false)
{
echo "Error creating socket!
";
echo "Error code is '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s));
}
else
{
// setting a broadcast option to socket:
$opt_ret = socket_set_option($s, 1, 6, TRUE);
if($opt_ret < 0)
{
echo "setsockopt() failed, error: " . strerror($opt_ret) . "
";
}
$e = socket_sendto($s, $msg, strlen($msg), 0, $addr, 2050);
echo $e;
socket_close($s);
echo "Magic Packet sent (".$e.") to ".$addr.", MAC=".$mac;
}
}

#WakeOnLan('yourIPorDomain.dyndns.org', 'your:MAC:address');
#WakeOnLan('192.168.0.2', '00:30:84:2A:90:42');
#WakeOnLan('192.168.1.2', '00:05:1C:10:04:05');

//if you have switch or other routing devices in LAN, sendign to
// the local IP isn't helps! you need send to the broadcast address like this:
WakeOnLan('192.168.88.255', '00:08:9B:F3:B4:B8');

?>

Hoffe das hilft dir

Hallo,

ich nutze unter Windows IPS das Kommanod „IPS_Execute“ und rufe damit das Programm „WakeOnLan“ als Kommadozeilentool auf. Ich nutze das Tool nämlich auch auf den Notebook, daher war der Schritt zu IPS ganz logisch.

Einmal in WakeOnLan.exe die Rechner konfiguriert mit Hostnamen und IP-Adresse, dann einfach Aufruf des zugehörigen Kommanlinetools nach folgenden Muster:

„c:\Program Files (x86)\WakeOnLAN\WakeOnLanC.exe“ -w -m NAS

würde z.b. mein NAS starten. Das ganze dann in „IPS_Execute“ verpackt und läuft.

WakeOneLan ist Freeware.

Funktioniert aus IPS raus ganz gut.

Danke. Klappt bei mir auf Anhieb beim Qnap-Nas.

Gruß oekomat