FOK!forum / Digital Corner / Wake on Lan via PHP
mvcvrijdag 2 november 2007 @ 17:25
Beste Fokkers

Sinds enkele weken ben ik in bezit van een Mini-server met PHP en MySQL ondersteuning. Nu heb ik thuis een aatal workstations die ik in tegenstelling tot mijn server niet dag en nacht aan heb staan. Het komt wel eens voor dat ik ergens ben en dan een bestand nodig heb dat niet op mijn server heb staat, maar op één van de workstations. In dat geval lijkt het me reuze handig als ik op dat moment de pc via Wake on Lan (WOL) in kan schakelen via een PHP script wat draait vanaf mijn server.

Uiteraard heb ik zelf al een beetje rondgezocht en de volgende 2 scripts gevonden.

Wake on Lan via PHP script 1
Wake on Lan via PHP script 2

Maar als ik het goed begrijp ben ik er met alleen de script nog niet helemaal. Mijn router moet Wake on Lan ondersteunen wat het apparaat volgens mij doet. En daarnaast moet ik als ik het goed begrijp een poorten forwardern naar de desbetreffende pc's ?

Wie heeft er toevallig ervaring met Wake on Lan via PHP en misschien een werkend script liggen ? Wat klopt er over het verhaaltje van het port forwardern ?
Sebasservrijdag 2 november 2007 @ 17:37
Lijkt me dat als je de server in hetzelfde subnet hebt dat je geen poorten hoeft te forwarden.
Sinatvrijdag 2 november 2007 @ 18:08
Wat Sebasser zegt, als je in hetzelfde subnet zit, hoef je niets te forwarden. Zo aan het scriptje te zien maakt hij een socket-verbinding met de netwerkkaart van je workstation en poept er een message naartoe (die FF:FF:FF:FF + 16 x MAC-adress) . Dus dat moet ook geen probleem vormen voor je router.

Dus probeer het eens uit
whoopsvrijdag 2 november 2007 @ 18:21
Leuk idee...

Forwarden hoeft niet, en de enige vereiste is eigenlijk dat je PC (het moederbod) WoL ondersteunt...

Hier staat ook nog een PHP scriptje: http://phrackattack.net/?p=18
mvcvrijdag 2 november 2007 @ 18:25
Als ik nu gebruik wil gaan maken van script 2, mijn pc's zitten op subnetmask 255.255.255.0 moet ik dit dan nog aangeven in het script ?
whoopsvrijdag 2 november 2007 @ 18:31
quote:
Op vrijdag 2 november 2007 18:25 schreef mvc het volgende:
Als ik nu gebruik wil gaan maken van script 2, mijn pc's zitten op subnetmask 255.255.255.0 moet ik dit dan nog aangeven in het script ?
Ik denk het niet... Waarschijnlijk pakt hij gewoon de netwerk settings van je server... Als je het ding gewoon op IP en die poort kan benaderen zal het voldoende zijn...
SuperrrTuxxxvrijdag 2 november 2007 @ 18:35
Interessant
mvcvrijdag 2 november 2007 @ 18:37
quote:
Op vrijdag 2 november 2007 18:31 schreef whoops het volgende:

[..]

Ik denk het niet... Waarschijnlijk pakt hij gewoon de netwerk settings van je server... Als je het ding gewoon op IP en die poort kan benaderen zal het voldoende zijn...
Bedankt voor je snelle reactie whoops ik wilde nog wat toevoegen aan mijn bericht maar ik kreeg het bekende scherm met de database error . Als ik op mijn pc ipconfig /all doe, dan krijg ik Fysiek adres. . . . . . . . . . . : 00-00-00-00-00-10 ik heb het idee dat dit geen goed mac-adres is. Op andere pc's bestaan mac adressen altijd uit letters en cijferes. De netwerkkaart zit onboard op een recent Asus moedeboard (WOL ondersteuning is aanwezig).

Nog bedankt trouwens voor het andere script, morgen ga ik eens testen met de verschillende scripts
whoopsvrijdag 2 november 2007 @ 18:48
quote:
Op vrijdag 2 november 2007 18:37 schreef mvc het volgende:

[..]

Bedankt voor je snelle reactie whoops ik wilde nog wat toevoegen aan mijn bericht maar ik kreeg het bekende scherm met de database error . Als ik op mijn pc ipconfig /all doe, dan krijg ik Fysiek adres. . . . . . . . . . . : 00-00-00-00-00-10 ik heb het idee dat dit geen goed mac-adres is. Op andere pc's bestaan mac adressen altijd uit letters en cijferes. De netwerkkaart zit onboard op een recent Asus moedeboard (WOL ondersteuning is aanwezig).

Nog bedankt trouwens voor het andere script, morgen ga ik eens testen met de verschillende scripts
Nee, die 00-00-00.... is niet echt een geldig MAC adres... Post anders de complete output van ipconfig /all eens?
mvcvrijdag 2 november 2007 @ 19:02
quote:
Op vrijdag 2 november 2007 18:48 schreef whoops het volgende:

[..]

Nee, die 00-00-00.... is niet echt een geldig MAC adres... Post anders de complete output van ipconfig /all eens?
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
Microsoft Windows XP [versie 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Naam>ipconfig /all

Windows IP-configuratie

        Host-naam  . . . . . . . . . . . .: desktop
        Primair DNS-achtervoegsel. . . . .:
        Knooppunttype: . . . . . . . . . .: onbekend
        IP-routering ingeschakeld. . . . .: nee
        WINS-proxy ingeschakeld . . . . . : nee

Ethernet-adapter LAN-verbinding:

        Verbindingsspec. DNS-achtervoegsel:
        Beschrijving . . . . . . . . . . .:
          VIA PCI 10/100Mb Fast Ethernet Adapter
        Fysiek adres. . . . . . . . . . . : 00-00-00-00-00-10
        DHCP ingeshakeld. . . . . . . . . : ja
        Autom. configuratie ingeschakeld. : ja
        IP-adres. . . . . . . . . . . . . : 192.168.1.210
        Subnetmasker. . . . . . . . . . . : 255.255.255.0
        Standaardgateway. . . . . . . . . : 192.168.1.1
        DHCP-server . . . . . . . . . . . : 192.168.1.1
        DNS-servers . . . . . . . . . . . : 192.168.1.1
        Lease verkregen . . . . . . . . . : vrijdag 2 november 2007 15:44:24
        Lease verlopen . . . . . . . . .  : zaterdag 3 november 2007 15:44:24

C:\Documents and Settings\Naam>


edit: ik heb sterk het vermoeden dat het mac adres wel klopt, ik ben even in de connectionlog van mijn router gedoken en daar heb ik het volgende gevonden:

1
2
74016 00:00:00:00:00:10 192.168.1.210 desktop 01:00:00:00:00:00:10
75492 00:12:f0:e1:b3:3a 192.168.1.254 laptop 01:00:12:f0:e1:b3:3a


[ Bericht 2% gewijzigd door mvc op 02-11-2007 19:14:15 ]
whoopsvrijdag 2 november 2007 @ 21:52
Wat een vaag mac adres...

Aangezien je router hem ook met dit mac adres ziet zou ik het gewoon eens proberen...

Helaas heb ik op het moment alleen een wifi netwerk anders had ik het ook eens geprobeerd
whoopsvrijdag 2 november 2007 @ 21:54
Wat je sowieso eens kan proberen is om je PC van het netwerk te laten booten (tijdens het booten F12 o.i.d.), tijdens het bootscherm wordt meestal wel het mac adres weergegeven...
CraZaayvrijdag 2 november 2007 @ 23:02
Spoof je het MAC-adres misschien ergens zodat het 00-00-... wordt?
mvczaterdag 3 november 2007 @ 11:04
quote:
Op vrijdag 2 november 2007 23:02 schreef CraZaay het volgende:
Spoof je het MAC-adres misschien ergens zodat het 00-00-... wordt?
Ik heb deze instructies even gevolgd en even een wat kloppender adres gemaakt

Ik ben nu bezig met script 2, ik heb van 2 pc's het ip en het mac adres in het script gezet.

1
2
3
4
5
6
7
// Remote workstation
$ip[0] = "192.168.1.182";
$mac[0] = "00:03:FF:FD:94:24";

// Workstation MK
$ip[1] = "192.168.1.57";
$mac[1] = "00:04:23:11:1B:26";


Wanneer ik het script lokaal oproep via mijn server dus http://192.168.1.3/wol.php krijg ik netjes de bijgewerkte versie van het script. Zodra ik op power on klik bij de desbetreffende pc gebeurt er niets. In de bios heb ik wake on lan aan staan.
WyriHaximuszaterdag 3 november 2007 @ 13:46
quote:
Op vrijdag 2 november 2007 18:35 schreef SuperrrTuxxx het volgende:
Interessant
Erg interesant idd .
whoopszaterdag 3 november 2007 @ 15:16
quote:
Op zaterdag 3 november 2007 11:04 schreef mvc het volgende:

[..]

Ik heb deze instructies even gevolgd en even een wat kloppender adres gemaakt

Ik ben nu bezig met script 2, ik heb van 2 pc's het ip en het mac adres in het script gezet.
[ code verwijderd ]

Wanneer ik het script lokaal oproep via mijn server dus http://192.168.1.3/wol.php krijg ik netjes de bijgewerkte versie van het script. Zodra ik op power on klik bij de desbetreffende pc gebeurt er niets. In de bios heb ik wake on lan aan staan.
Heb je php error_reporting aan staan, en zo ja, zie je niets raars?
Aaargh!zaterdag 3 november 2007 @ 15:50
quote:
Op vrijdag 2 november 2007 17:25 schreef mvc het volgende:
Nu heb ik thuis een aatal workstations die ik in tegenstelling tot mijn server niet dag en nacht aan heb staan.
Volgens mij probeer je het verkeerde probleem op te lossen. In plaats van WoL te fixen zou je ook kunnen uitzoeken waarom je workstations niet 24/7 aanstaan en dat oplossen.
whoopszaterdag 3 november 2007 @ 16:03
quote:
Op zaterdag 3 november 2007 15:50 schreef Aaargh! het volgende:

[..]

Volgens mij probeer je het verkeerde probleem op te lossen. In plaats van WoL te fixen zou je ook kunnen uitzoeken waarom je workstations niet 24/7 aanstaan en dat oplossen.


Omdat hij ze bijvoorbeeld bij het slapen gaan uitzet?

Het is ideaal om zo je clients te backuppen... 's nachts wakker maken, backuppen, en weer afsluiten...
thijs121zaterdag 3 november 2007 @ 17:58
duidelijk een leuk idee.
zeer zeker tvp
Aaargh!zaterdag 3 november 2007 @ 18:08
quote:
Op zaterdag 3 november 2007 16:03 schreef whoops het volgende:

[..]



Omdat hij ze bijvoorbeeld bij het slapen gaan uitzet?
Je bedoelt dat TS z'n computers opzettelijk uitzet

Waarom de neuk zou je dat doen ? Ik kan niet 1 reden bedenken waarom je dat zou willen.
tsjsiebzaterdag 3 november 2007 @ 19:51
quote:
Op zaterdag 3 november 2007 18:08 schreef Aaargh! het volgende:

[..]

Je bedoelt dat TS z'n computers opzettelijk uitzet

Waarom de neuk zou je dat doen ? Ik kan niet 1 reden bedenken waarom je dat zou willen.
Onnodig stroomverbruik misschien?...
mvczaterdag 3 november 2007 @ 20:15
Mensen die ook geďnteresseerd zijn, wie zou WOL eens willen testen ? In deze tread op tweakers.net staat een tooltje waarmee je een magic package via Windows kunt verstuuren naar de pc die je op wil starten.

Mij lukt het niet, ik heb alles stap voor stap gedaan wat er wordt beschreven maar de pc's starten niet op.
whoopszaterdag 3 november 2007 @ 21:10
quote:
Op zaterdag 3 november 2007 18:08 schreef Aaargh! het volgende:

[..]

Je bedoelt dat TS z'n computers opzettelijk uitzet

Waarom de neuk zou je dat doen ? Ik kan niet 1 reden bedenken waarom je dat zou willen.
Ik zette ze eerder vaak uit omdat ik in dezelfde kamer sliep, en stroomverbruik is ook zeker een reden.. Als ik een weekend weg ben hoeven er niet 4 machines aan te staan...
Aaargh!zondag 4 november 2007 @ 11:46
quote:
Op zaterdag 3 november 2007 21:10 schreef whoops het volgende:

[..]

Ik zette ze eerder vaak uit omdat ik in dezelfde kamer sliep, en stroomverbruik is ook zeker een reden.. Als ik een weekend weg ben hoeven er niet 4 machines aan te staan...
Stroomverbruik is minimaal als je een fatsoenlijke computer hebt met een werkende powersave mode. En verder is het natuurlijk een kwestie van zorgen dat je het goeie type computer koopt voor de lokatie waar ie komt. Op mijn slaapkamer staat een Mac Mini die 24/7 aan staat. 't ding gebruikt maar 20 watt en is totaal geruisloos.

Elke keer je computer moeten opstarten is toch super irritant.
CraZaayzondag 4 november 2007 @ 12:38
quote:
Op zondag 4 november 2007 11:46 schreef Aaargh! het volgende:

[..]

Elke keer je computer moeten opstarten is toch super irritant.
Dan nog kun je die Mac prima sleepen en is 'ie na 2 seconden weer uit sleep als je op een knop drukt. Geen reden om 'm 24/7 aan te laten staan dus.
mvczondag 4 november 2007 @ 13:17
Iemand misschien die WOL al geprobeerd heeft
Aaargh!zondag 4 november 2007 @ 14:21
quote:
Op zondag 4 november 2007 12:38 schreef CraZaay het volgende:

[..]

Dan nog kun je die Mac prima sleepen en is 'ie na 2 seconden weer uit sleep als je op een knop drukt. Geen reden om 'm 24/7 aan te laten staan dus.
Jawel, als je 'm sleept, dus dat ie echt uit staat, dan zijn al je netwerk verbindingen weg. En 't is niet alsof 't ding zoveel stroom vreet.
h.henkiezondag 4 november 2007 @ 16:41
Ik ben er ook mee aan het stoeien. Maar dat is met vlagen Maar ik volg dit op de voet
mvczondag 4 november 2007 @ 21:56
quote:
Op zondag 4 november 2007 16:41 schreef h.henkie het volgende:
Ik ben er ook mee aan het stoeien. Maar dat is met vlagen Maar ik volg dit op de voet
Er zijn vast Fokkers die meer kaas hebben gegeten van het WOL gebeuren dan wij Het wachten is op één van hen
CraZaayzondag 4 november 2007 @ 23:20
quote:
Op zondag 4 november 2007 14:21 schreef Aaargh! het volgende:

[..]

Jawel, als je 'm sleept, dus dat ie echt uit staat, dan zijn al je netwerk verbindingen weg. En 't is niet alsof 't ding zoveel stroom vreet.
Als 'ie sleept staat 'ie niet echt uit, het is geen shutdown
gdaymaandag 5 november 2007 @ 00:33
quote:
Op zaterdag 3 november 2007 18:08 schreef Aaargh! het volgende:

[..]

Je bedoelt dat TS z'n computers opzettelijk uitzet

Waarom de neuk zou je dat doen ? Ik kan niet 1 reden bedenken waarom je dat zou willen.
Nee, laten we vooral met z'n allen apparaten zo lang mogelijk voor niks aan laten staan. En kom nou alsjeblieft niet met dat mac-dit mac-dat. Sommige mensen hebben geen mac en/of willen geen mac. Wen er maar aan.

@TS, ik kan er overheen gelezen hebben maar weet je wel zeker dat je moederbord WoL ondersteunt?

Ik gebruik zelf WoL niet meer sinds ik alleen nog maar m'n laptop gebruik, maar in het verleden vond ik het ook erg handig om mbv een zelfgemaakt scriptje op een centrale server die thuisstaat verschillende workstations aan te kunnen zetten. Zo kon ik ook makkelijk aangeven op welke dagen ik 's nachts een bepaalde workstation wilde wekken, die 5 minuten na het wakker worden een virusscan e.d. startte en na afloop weer uitging.
h.henkiemaandag 5 november 2007 @ 00:38
Oké ben nog even aan het stoeien.
Via deze site ben ik er achter gekomen dat mijn modem / router Udp poort 9 goed doorstuurt.
Op die site ( even mijn Duits opgehaald) heb ik het script overgenomen en aangepast. Zie hieronder. Ik heb dit script op een externe webserver gezet en gedraaid. Dat werkte . Maar wat ik eigenlijk wil is dat het draait op mijn interne webserver. Dus dat moet ik nog even uitzoeken.

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
<?php
$mac 
'xx:xx:xx:xx:xx:xx'//MAC Adres
$ip 'udp://xxx.xxx.xxx.xxx'//oder mit IP z.B.: udp://192.168.0.1

function wakeup($mac_addr,$router_addr) {
     if (
$fp fsockopen($router_addr9$errno$errstr4)) {
          
//erlaubte Zeichen:
          
$hexchars = array("0","1","2","3","4","5","6","7","8","9",
          
"A","B","C","D","E","F",
          
"a","b","c","d","e","f"
          
);


     
// 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
     
$data "\xFF\xFF\xFF\xFF\xFF\xFF";
     
$hexmac "";

     
// Jetzt werden unntige zeichen in der mac-adresse
     // entfern (also z.B. die bindestriche usw.)
     
for ($i 0$i strlen($mac_addr); $i++) {
          if (!
in_array(substr($mac_addr$i1), $hexchars)) {
               
$mac_addr str_replace(substr($mac_addr$i1), "",
$mac_addr);
               }
          }

     for (
$i 0$i 12$i += 2) {
          
$hexmac .= chr(hexdec(substr($mac_addr$i2)));
          }

     
// Hexadresse wird 16mal hintereinandergeschrieben
     
for ($i 0$i 16$i++) {
          
$data .= $hexmac;
          }
     
fputs($fp$data);
     
fclose($fp);
     echo 
'MagicPaket is  verzonden naar '.$mac." ".$ip ;
     return 
true;
     }
Else {
     echo 
"<b>Waarschuwing: $errno</b> $errstr<br>";
     return 
false;
     }
}

wakeup($mac$ip);
     echo 
$mac." ".$ip;
?>
quote:
Wanneer ik het script lokaal oproep via mijn server dus http://192.168.1.3/wol.php krijg ik netjes de bijgewerkte versie van het script. Zodra ik op power on klik bij de desbetreffende pc gebeurt er niets. In de bios heb ik wake on lan aan staan.
In dit script kom ik udp poort 7 of 9 niet tegen. waarschijnlijk werkt het daar niet door.

ps bestaat er ook een script die een computer uitzet?

[ Bericht 4% gewijzigd door h.henkie op 05-11-2007 00:44:34 ]
Aaargh!maandag 5 november 2007 @ 07:58
quote:
Op zondag 4 november 2007 23:20 schreef CraZaay het volgende:

[..]

Als 'ie sleept staat 'ie niet echt uit, het is geen shutdown
Nee, maar alles staat wel 'stil' dus alle netwerk verbidingen vallen weg.
mvcmaandag 5 november 2007 @ 18:02
quote:
Op maandag 5 november 2007 00:38 schreef h.henkie het volgende:
ps bestaat er ook een script die een computer uitzet?
Niet dat ik weet, maar als je je pc aan hebt weten te zetten via WOL, dan kun je hem overnemen via Extern Bureaublad (Remote desktop). Als je je pc over hebt genomen, dan kun je hem via extern bureaublad weer afsluiten.
Om extern bureaublad te kunnen gebruiken moet je wel TCP poortje 3389 openzetten.

Ik ga overigens eens even kijken wat jou scipt doet bij mij Bedankt hiervoor.
Aaargh!maandag 5 november 2007 @ 19:56
quote:
Op maandag 5 november 2007 00:38 schreef h.henkie het volgende:
ps bestaat er ook een script die een computer uitzet?
Gewoon het 'halt' commando aanroepen via een exec. (is wel een security issue)
h.henkiemaandag 5 november 2007 @ 23:29
quote:
Op maandag 5 november 2007 19:56 schreef Aaargh! het volgende:

[..]

Gewoon het 'halt' commando aanroepen via een exec. (is wel een security issue)
Oké ga ik later eens uitproberen. Dank voor de hint
Haijodinsdag 6 november 2007 @ 00:48
quote:
Op vrijdag 2 november 2007 18:21 schreef whoops het volgende:
Leuk idee...

Forwarden hoeft niet, en de enige vereiste is eigenlijk dat je PC (het moederbod) WoL ondersteunt...
Hoe kan je dat zien eigenlijk?
h.henkiedinsdag 6 november 2007 @ 01:54
quote:
Op dinsdag 6 november 2007 00:48 schreef Haijo het volgende:

[..]

Hoe kan je dat zien eigenlijk?
Wol kun je terug vinden bij de eigenschappen van je netwerkkaart; tabje geavanceerd; regel wake up type. Maar meestal staat het ook gewoon op de doos (die je weggooit gerecycled) en de handleiding die ongelezen in de kast verdwijnt.
mvcdinsdag 6 november 2007 @ 09:52
quote:
Op dinsdag 6 november 2007 01:54 schreef h.henkie het volgende:

[..]

Wol kun je terug vinden bij de eigenschappen van je netwerkkaart; tabje geavanceerd; regel wake up type. Maar meestal staat het ook gewoon op de doos (die je weggooit gerecycled) en de handleiding die ongelezen in de kast verdwijnt.
Bij mijn eigen computer heb ik deze opties, maakt het nu uit welke ik kies, of moet ik hem op ALL zetten ? ?


Bij een andere pc heb ik deze opties, maakt het nog uit waar ik deze op instel ?


Als ik Wake On Lan op de bovenstaande manier instel, dan gelden de instellingen toch alleen voor wanneer de pc in standby staat? Of is het zo dat de instellingen worden doorgevoerd naar de netwerkkaart zelf ? Wanneer ik de pc uit heb staan, stekker wel in het stopcontact, dan kan mijn netwerkkaart deze gegevens toch niet ophalen vanuit windows ?

[ Bericht 18% gewijzigd door mvc op 06-11-2007 10:04:35 ]
Aaargh!dinsdag 6 november 2007 @ 20:03
quote:
Op dinsdag 6 november 2007 09:52 schreef mvc het volgende:
Als ik Wake On Lan op de bovenstaande manier instel, dan gelden de instellingen toch alleen voor wanneer de pc in standby staat? Of is het zo dat de instellingen worden doorgevoerd naar de netwerkkaart zelf ? Wanneer ik de pc uit heb staan, stekker wel in het stopcontact, dan kan mijn netwerkkaart deze gegevens toch niet ophalen vanuit windows ?
Dat wordt i.d.d. in de netwerkkaart zelf opgeslagen.
Buschettawoensdag 7 november 2007 @ 01:32
Jullie begrijpen dat hackers standaard WOL exploiteren ?

zorg dus dat je genoeg weet van netwerken voordat je die poorten opengooit
h.henkiewoensdag 7 november 2007 @ 19:18
quote:
Op woensdag 7 november 2007 01:32 schreef Buschetta het volgende:
Jullie begrijpen dat hackers standaard WOL exploiteren ?

zorg dus dat je genoeg weet van netwerken voordat je die poorten opengooit
Yep ik ben me hier bewust van. Het uit eindelijke doel is dat het alleen via het interne netwerk gebruikt word. En mijn draytek blokkeert dat al het, van buiten, inkomende udp 9 verkeer.
Ik heb dit nl al eens verkeerd zien gaan.
h.henkiewoensdag 7 november 2007 @ 19:20
quote:
Bij mijn eigen computer heb ik deze opties, maakt het nu uit welke ik kies, of moet ik hem op ALL zetten ? ?
Ik heb hem op all staan
quote:
Bij een andere pc heb ik deze opties, maakt het nog uit waar ik deze op instel ?
Ik zou hier kiezen voor 1 van de laatste 2.