發新話題 Report thanks

Wake on LAN 網路開機

Wake on LAN 網路開機
原始資訊在:http://tw.php.net/manual/en/ref.sockets.php

# Wake on LAN -(c)HotKey@spr.at,upgraded by Murzik
複製內容到剪貼板
代碼:
<?php
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!n";
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)."n";
}
$e =socket_sendto($s,$msg,strlen($msg),0,$addr,2050);
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.0.255','00:11:09:61:3E:26');
?>
如果您喜歡這篇文章,請按「讚」或分享給您的朋友,以示鼓勵。

TOP

thanks