/**
* 发送网络唤醒
* @param $mac_address mac地址
* @param $broadcast_address 广播地址
* @param $port 端口号(默认都是7或者9)
* @return array
*/
public function sendWol()
{
// 设置网络唤醒:远程唤醒电脑WOL(Wake On LAN - 局域网唤醒)
// https://blog.csdn.net/a843334549/article/details/107290137/
// 目标计算机的MAC地址
$macAddress = '60-BE-B4-01-FD-B5';
// 设置目标IP地址和端口(通常为9)
$ip = '255.255.255.255'; // 广播地址
$port = 9;
// 将MAC地址转换为二进制格式(截取mac地址,有可能是 : 或者 -)
$macBytes = explode('-', $macAddress);
$macBinary = '';
foreach ($macBytes as $byte) {
$macBinary .= chr(hexdec($byte));
}
// 构造WOL魔术包
$magicPacket = str_repeat(chr(0xFF), 6) . str_repeat($macBinary, 16);
// 创建UDP socket
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
if ($socket === false) {
die('Socket creation failed: ' . socket_strerror(socket_last_error()));
}
// 设置socket为广播模式
socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, 1);
// 发送魔术包
$result = socket_sendto($socket, $magicPacket, strlen($magicPacket), 0, $ip, $port);
if ($result === false) {
die('Magic packet send failed: ' . socket_strerror(socket_last_error($socket)));
}
// 关闭socket
socket_close($socket);
return ['code'=>200, 'msg'=>'Magic packet sent successfully', 'data'=>[]];
}
Win10关机可以网络唤醒,睡眠无法网络唤醒?
卡卷网
每日看点
126
同类推荐
-
有什么音乐软件可以全部免费下载歌曲?
查看 -
你有突破100个粉丝了吗?
查看 -
苹果为什么不做千元机?
查看 -
到什么程度才叫精通 Linux?
查看 -
为什么说不懂电脑的不要碰AMD?
查看 -
MacOS真的比Windows流畅吗?
查看 -
无意中发现技术主管写的代码,大家帮忙看看什么水平?
查看 -
为什么不建议买游戏本?
查看 -
为什么张雪峰什么专业都懂?
查看
发表评论

最新文章
热门文章
随机文章