背景
外出先や別の部屋から、Androidで自宅のPCをWake-on-LAN (WoL) で起こしたいだけなのに、そのためだけにFingのような大きめのネットワーク管理アプリを入れるのは大げさに感じていました。
欲しかったのは、次の3つだけでした。
- LAN内の端末を登録する
- オンライン/オフラインを確認する
- Wake-on-LANのMagic Packetを送る
この最小構成のためだけに、小さなAndroidアプリ WolLight を作りました。
WolLightでできること
- LAN内のデバイスをスキャンして登録(名前・IP・MACアドレス・ブロードキャストアドレス・ポート)
- 登録済みデバイスのオンライン/オフライン表示(起動時・フォアグラウンド復帰時・手動Pingで更新)
- Ping送信(10回・1秒間隔、成功率と平均応答時間を表示)
- Wake-on-LAN Magic Packetの送信(UDPブロードキャスト)
- WoL送信後の10回Pingによる起動確認
実際の使い方
- 対象PCをLANスキャンから登録する
- デバイス一覧でオンライン/オフラインを確認する
- 対象PCを休止状態にする
- WolLightからWoLを送信する
- 10回Pingで起動を確認する
WoLで注意する点
ここが今回いちばん書いておきたい部分です。
WolLightがMagic Packetを送信できたとしても、対象PCが必ず起動するとは限りません。UDPのMagic Packet送信はコネクションレスなので、アプリ側は「送った」ことしか確認できず、「届いた」「PCが起きた」ことまでは保証できません(起動確認にPingを使っているのはこのためです)。
さらに、そもそも対象PCが起動できるかどうかは、以下に依存します。
- 対象PCのBIOS/UEFIでWake-on-LANが有効になっているか
- NICがMagic Packetでのスタンバイ解除に対応しているか
- Windowsの電源管理設定(特に高速スタートアップ)
自分の確認環境では、休止状態からの起動は成功していますが、シャットダウン状態からの起動は成功していません。これはWolLight側の不具合というより、シャットダウン状態でのWoL挙動が対象PC側の設定に依存する、という一般的な制約として理解しています。
Privacy / ネットワーク動作
- 通信はすべて同一LAN内(Magic Packet送信・Ping・ホスト名解決)
- analytics・telemetry・クラッシュレポートは実装していません
- 外部HTTPサービスへの通信、クラウド同期はありません
- 登録したデバイス情報(名前・IP・MAC・ブロードキャストアドレス・ポート)は端末内のローカルDBにのみ保存されます
ダウンロード
GitHubのpre-releaseからAPKをサイドロードでインストールできます。Google Playでの配布は行っていません。
- リポジトリ: https://github.com/iwadjp/wol-light
- v1.0.0 pre-release: https://github.com/iwadjp/wol-light/releases/tag/v1.0.0
現在の位置づけ
- v1.0.0はpre-releaseです
- Pixel 10aを中心に動作確認しています。他の端末・ネットワーク環境では未確認の部分があります
- ライセンスはMITです
まだ検証途上の部分もありますが、同じように「WoLだけしたい」人の参考になれば幸いです。感想やissueはGitHubリポジトリでお待ちしています。