Linuxマジックパケットコマンド生成ツール
LinuxからWake on LANのマジックパケットを送信する、ネイティブのbashまたはzshコマンドを生成します。Python 3、Perl、またはbashの/dev/udpを使うため、wakeonlanやetherwakeのインストールは不要です。
入力
出力
Readme
Wake on LANのマジックパケットとは?
Wake on LANを使うと、スリープ中または電源がオフのコンピューターをネットワーク経由で起動できます。ネットワークカードは給電されたまま、マジックパケットを待ち受けます。マジックパケットは、6バイトのFFに続けてコンピューターのMACアドレスを16回繰り返した、合計102バイトのデータです。通常はUDPブロードキャストとしてポート9または7に送信されるため、ローカルネットワーク上のすべてのマシンが受信し、一致するマシンだけが起動します。まず、コンピューターのBIOSまたはUEFI設定でWake on LANを有効にする必要があります。
wakeonlanやetherwakeなどのツールで送信できますが、常にインストールされているとは限りません。また、サーバーやNASにそれらを追加したくない場合もあります。
ツールの説明
このツールは、Linuxに標準で用意されている機能を使ってパケットを送信する1行コマンドを作成します。起動するコンピューターのMACアドレスを、00:11:22:AA:BB:CC、00-11-22-AA-BB-CC、0011.22AA.BBCC、または区切りなしの16進数12桁の形式で入力し、「送信方法」で送信方法を選択します。
- Python 3またはPerl。bashとzshで動作し、root権限は不要で、ブロードキャストも可能です
- Bashの/dev/udp。インストール不要ですが、bashでのみ動作し、zshでは動作しません。また、ブロードキャストもできません
ブロードキャストまたはIPアドレスの初期値は255.255.255.255、UDPポートの初期値は9です。bashでブロードキャストアドレスに送信すると、Linuxは「アクセスが拒否されました」と応答します。そのため、.255で終わるアドレスを指定してBashを選ぶと、このツールは警告を表示します。代わりに、起動するコンピューター自体のIPアドレスを指定してください。
コマンドはブラウザー内で作成されます。コピーして、同じネットワーク内にある任意のLinuxマシンで実行してください。
使用例
00:11:22:AA:BB:CCの場合、Python 3でポート9にブロードキャストする例:
python3 -c 'import socket;s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM);s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1);s.sendto(bytes.fromhex("ff"*6+"001122aabbcc"*16),("255.255.255.255",9))'Bashで、192.168.1.20のコンピューターに直接送信する例:
printf "$(printf '\\xff%.0s' {1..6})$(printf '\\x00\\x11\\x22\\xaa\\xbb\\xcc%.0s' {1..16})" > /dev/udp/192.168.1.20/9機能
- Python 3、Perl、bash版のコマンドを作成
- コロン、ハイフン、ドットで区切った形式と、区切りなしのMACアドレスに対応
- bash版でブロードキャストアドレスに送信できない場合に警告表示