Autor | Zpráva | ||
---|---|---|---|
holi Profil |
#1 · Zasláno: 19. 4. 2011, 15:20:58 · Upravil/a: holi
Zdravím ve spolek,
mám script na testování zda je PC online. function online_pc ($ip, 80){ $fp = @fsockopen($ip, $port, $errno, $errstr, 3); if(!$fp){ return "Offline !"; } else{return "Online !";} } Jenže nastává problém u toho když je člověk schovaný za routerem (což je asi většina uživatelů internetu). Tak sem se chtěl zeptat jestli jde nějak odeslat na router dotaz na broadcast který by hledat určitou mac adressu a když ji našel tak sní zkusil navázat socket spojení jako je výše. Logicky mě napadá že by se to rovnou mohlo udělat tak že pokud ji nenajde tak je offline a pokud najde tak je online (vypnutý/ zapnutý). Takže něco na spůsob : if(($s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) == false) exit; // otevře UDP socket if(socket_set_option($s, SOL_SOCKET, SO_BROADCAST, true) == false) exit; // nastaví jako broadcast $msg = socket_connect($s, $MAC); if(socket_sendto($s, $msg, strlen($msg), 0, $ip, $port) == false) exit; // odešle Magic Packet na danou IP a UDP port socket_close($s); // uzavření socketu echo 'Počítač je online'; } Vím že toto fungovat nebude, alepoň to oděslání $msg, ale je to pro představu co bych chtěl |
||
Časová prodleva: 13 let
|
0