[HTML]Magic Packet versturen vanaf een website

Pagina: 1
Acties:
  • 2.333 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Jack Flushell
  • Registratie: Juli 2000
  • Laatst online: 21:09
Inleiding
Op deze site is het mogelijk om een Magic Packet (een UDP pakketje met 16x je MAC adres herhaalt) te versturen. Hierdoor kan je systeem ontwaken vanuit de UIT-stand (Wake On Lan). Dit werkte niet op mijn sweex router, maar met mijn nieuwe Edimax router werkt dat perfect, zolang ik UDP 9 op mijn router doorlink naar mijn bak en de DHCP lease time in de router op Forever zet. Berichten dat WOL niet werkt vanaf internet kloppen dus niet.

Le Problem
Ik wil graag deze code ook programmeren in een pagina op mijn eigen website, zodat ik, als bovenstaande pagina er niet (meer) is, altijd nog gebruik kan maken van de functie om mijn computer uit de UIT-stand te halen.
Ik heb in de source van de pagina waarmee het lukt gekeken, maar daar wordt ik helaas niet wijzer van. Hoe doen ze het... misschien dat iemand hier dat uit die source kan halen... gebruiken ze er een javascript voor ofzo?

En als het niet uit de source gehaald kan worden... weet iemand dan misschien hoe ik een code kan maken die een Magic Packet kan versturen naar een bepaald IP en een bepaalde poort?

Ik hoop dat het probleem nu helder is... het is wellicht ook interessant voor andere tweakers om zoiets voorelkaar te krijgen...

Acties:
  • 0 Henk 'm!

  • Ethnocentrix
  • Registratie: Augustus 2002
  • Laatst online: 12-09 10:29

Ethnocentrix

Rijkserkend prutser

Waarschijnlijk gebruiken ze een php script ofzo waarmee ze dat packet verzenden. met pure HTML en/of javascript kan dat namelijk niet.

You know you're an engineer if you have no life & can prove it mathematically.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Met PHP en een socket zou het moeten lukken. Dan is het verder gewoon een kwestie van een geschikt pakketje opbouwen (wat je zelf zegt is vrij simpel) en naar het juiste adres sturen; een paar regels PHP code.

Verder kun je ook wel met netcat het pakketje versturen. Als je 'm eenmalig opbouwt (in een hex-editor ofzo) dan kun je tenminste altijd je eigen computer weer aanzetten.

edit:
Verhaal over raw sockets weggehaald; die zijn hier niet aan de orde.

[ Voor 47% gewijzigd door Soultaker op 04-01-2005 19:30 ]


Acties:
  • 0 Henk 'm!

  • Access
  • Registratie: Juni 2001
  • Laatst online: 11-09 21:47
Dit script heb ik ooit een keer van het net geplukt en het werkte bij mij:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?

function WakeOnLan($addr, $mac)
{
    /*
     * (C)opyright 2K2 hotkey@spr.at
     */
    $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
     */
    $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    if ($s == false)
    {
        echo "Error creating socket!\n";
        echo "Error:".socket_strerror(socket_last_error($s));
    }
    else
    { 
        $e = socket_connect($s, $addr, 2050);
        if ($e == false)
        {
            echo "connection failed\n";
            echo "Error:".socket_strerror(socket_last_error($s));
        }
        else
        { 
            $e = socket_setopt($s, SOL_SOCKET, SO_BROADCAST, 1);
            $e = socket_write($s, $msg, strlen($msg));
            socket_close($s);

            echo "Magic Packet sent (".$e.") to ".$addr.", MAC=".$mac;
        }
    }
}

$mac_addr = "00:00:00:00:00:00"; //put the MAC-to-be-woken here!
WakeOnLan('255.255.255.255', $mac_addr); //IP must be 255.255.255.255
//at least it didnt work otherwise...

?>

Acties:
  • 0 Henk 'm!

  • Jack Flushell
  • Registratie: Juli 2000
  • Laatst online: 21:09
Bedankt Access, dit script werkt perfect voor mij!
Waar 2050 staat heb ik 9 ingevuld en waar 255.255.255.255 staat gewoon mijn WAN IP en mijn Edimax routertje zet mij PC perfect aan :)

Nu nog even een wachtwoordje erin knutselen en ik ben de MAN! :)

Acties:
  • 0 Henk 'm!

  • bobob21
  • Registratie: Januari 2005
  • Laatst online: 07-06 08:49
IK heb ook mijn WAN IP adres ingevuld,poort 9 en mijn Mac adres. Ik krijg echter de volgende foutmelding:

Warning: socket_write() unable to write to socket [1]: Operation not permitted in /home/smehra/public_html/gallery/wake.php on line 42

weet iemand waar dit aan ligt?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

bobob21 schreef op woensdag 12 januari 2005 @ 23:06:
IK heb ook mijn WAN IP adres ingevuld,poort 9 en mijn Mac adres. Ik krijg echter de volgende foutmelding:

Warning: socket_write() unable to write to socket [1]: Operation not permitted in /home/smehra/public_html/gallery/wake.php on line 42

weet iemand waar dit aan ligt?
Er staat toch waar het aan ligt? Je hebt geen rechten (althans PHP heeft geen rechten) om die socket te openen.
Pagina: 1