0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Fingの代わりに、Pixelから自宅PCをWake-on-LANするAndroidアプリを作った

0
Posted at

背景

外出先や別の部屋から、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による起動確認

実際の使い方

  1. 対象PCをLANスキャンから登録する
  2. デバイス一覧でオンライン/オフラインを確認する
  3. 対象PCを休止状態にする
  4. WolLightからWoLを送信する
  5. 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での配布は行っていません。

現在の位置づけ

  • v1.0.0はpre-releaseです
  • Pixel 10aを中心に動作確認しています。他の端末・ネットワーク環境では未確認の部分があります
  • ライセンスはMITです

まだ検証途上の部分もありますが、同じように「WoLだけしたい」人の参考になれば幸いです。感想やissueはGitHubリポジトリでお待ちしています。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?