1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPでWake On Lanを行う

Last updated at Posted at 2025-06-29

PHP初心者が、PHPでWake On Lanをやってみたので、それについてまとめました。

Waek On Lanとは?
「マジックパケット」という特殊なネットワークパケットを、ネットワーク内にブロードキャスト送信し、特定のコンピュータを遠隔起動させる方法です。

マジックパケットの構造
先頭に、16進数で「FF:FF:FF:FF:FF:FF」、続けて、起動したいコンピュータのMACアドレスを16回繰り返したデータを付加した、102バイトのデータです。

このマジックパケットを、ネットワーク内にブロードキャスト送信します。マジックパケットを送信するコンピュータと、起動したいコンピュータが同一ネットワークに存在する場合、この方法で、起動したいコンピュータを遠隔起動させることができます。

詳しくはこちらの記事もご覧ください。

Wake On Lan
https://e-words.jp/w/WOL.html

マジックパケット
https://e-words.jp/w/%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%83%91%E3%82%B1%E3%83%83%E3%83%88.html

マジックパケットを受け取るための設定

Windows
https://www.splashtop.co.jp/knowhow/30/

Linux
https://vild.hatenablog.com/entry/2019/09/14/154813

Mac
https://bootmacos.com/archives/12223

このWake On Lanを、PHPを使ってやってみました。
筆者の環境でのソースコードは以下になります。
※MACアドレスとブロードキャストアドレスは、適宜ご自身の環境に合わせて変更してください。

<?php

sendMagicPacket();

function sendMagicPacket()
{
    // 対象PCのMACアドレス
    $macAddress = 'F0-2F-74-D3-8E-C0';
    
    // 現在いるネットワークのブロードキャストIPアドレス
    // 255.255.255.255ではファイアウォールでブロックされる可能性が高いため、このように使う
    $ipAddress = '192.168.10.255';

    sendMagicPacket($macAddress, $ipAddress);
}

function sendMagicPacketHelper($macAddress, $ipAddress)
{
    $macHex = str_replace([':', '-'], '', $macAddress);
    $macBinary = pack('H12', $macHex);
    $magicPacket = str_repeat(chr(0xFF), 6) . str_repeat($macBinary, 16);

    // ブロードキャスト送信オプションを設定(Linuxではブロードキャスト送信したい場合必須)
    $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, 1);

    // マジックパケット送信
    socket_sendto($socket, $magicPacket, strlen($magicPacket), 0, $ipAddress, 9);

    // ソケットを閉じる
    socket_close($socket);
}

以上、PHP初心者が、PHPでWake On Lanをやってみた内容になります。
僭越ではございますが、みなさんのお役に立てれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?