nWOL: Wake on LANを使った遠隔PC起動管理ツール
(ダウンロードはこちら)
Version 1.6.74 をリリースしました! (2021/1/10)
Wake on LANを使ってPCを遠隔起動するツールです。シンプルだけど使って気持ちいいツールを目指して作ってみました。
・ LANに接続されている機器のMACアドレス、IPアドレス、ホスト名を高速で検索
・ LAN内PCのIPアドレスの変化を自動検知し更新。固定IPアドレス化不要。
・ DDNSに対応。(Ver 1.6新機能)
・ ホストの起動停止時のサウンド機能。(Ver 1.6新機能)
・ マジックパケット送出からの経過時間を表示遠隔PCの起動状態をリアルタイムで表示
・ 遠隔PCの起動状態をタスクトレイ通知領域にリアルタイムに表示
・ マジックパケット送信などをコマンドから行えるコンソールコマンドを提供
nWOL初版リリースしてから早くも1年になります。これまでnWOLの記事を全く書いていませんでしたので、遅ればせながら、記事を書いてみたいと思います。
nWOLは、シンプルだけど極力使いやすいUIを目指していたので、表にはあまり見えませんが、中でかなりいろいろと作りこみを行っていた部分があります。中でも一番労力をかけることになった機能は、「LAN内ホスト検索(Scan)」機能です。LANに接続されている全てのホスト(起動しているもの)のMACアドレス、IPアドレス、ホスト名を全て調べる機能です。多分nWOL作成の3割くらいをこれに費やしてます。処理を極力非同期化、並列化し、不要な待ち時間をなくすことで、極限まで処理の短時間化を図っています。個人的にはかなり気持ちいいです。是非皆様にも一度やってみていただきたいと思っています。
WOLツールの初期設定では、起動したいPCのIPアドレスやMACアドレスなどのホスト情報をツールに登録する必要があります。ホスト情報を手動で登録しようとすると、いちいちPCの電源を入れて、MACアドレス、IPアドレスを手作業で調べ、その値をWOLツールに入力しなくてはなりません。1回だけならまだ我慢できますが、WOLツールを複数PCに設定しようとすると、何度も同じことをやることになり、結構めんどくさいです。これはなるべくやりたくありません。
「LAN内ホスト検索(Scan)」機能を使うと、ホストの電源さえ入れておけば、MACアドレス、IPアドレス、ホスト名を簡単に自動で調べることができますので、とても便利です。
まず、検索したいホストの電源を入れておきます。
そして、nWOL設定画面の「Scan」ボタンを押すだけです。
LAN内に接続されている(起動している)全てのホストの情報が、ホスト一覧に表示されると思います。スマホや家電なども表示されてしまいます。ホスト名が読み取れなかったものは Unknownという名前になります。
非常に短時間、多分5秒くらいで全ての結果が返ってきます。かなり早いと思います。一般的なツールだと、/24のLAN(アドレス数256くらい)を調べるのにだいたい数分かかるのではないでしょうか。
(後日注:nWOL Ver1.4において、Scan時のホスト名検索のタイムアウト時間を調整したことにより、Scanの所要時間が少し長くかかるようになっています。環境によりますが、個人環境でやってみたところ実測7秒くらいでした。)
それでは、どうやってこの処理速度を実現しているか、ご紹介してしまいたいと思います。
まず、一般的なホスト検索方法ですが、多分以下のような処理ではないでしょうか。
機器が存在するIPアドレスの場合はリプライはすぐ返ってきますが、機器が存在しないIPアドレスの場合は数秒間のタイムアウトを待たなくてはなりません。256アドレスのほとんどがタイムアウトする場合、かなり時間がかかってしまいます。pingのタイムアウトが1秒であった場合、全体で4分以上の待ち時間になる計算です。
nWOLでのホスト検索処理はおおまかに以下のようになります。
pingは、あくまでもARPテーブルにIPアドレス、MACアドレスを登録させるためのトリガーとして送信するため、非同期処理でpingを送信し、リプライを待ちません。そのため、全てのpingがほぼ同時に送出されます。また、時間のかかるホスト名解決も非同期処理で並列に処理することで、処理時間の短縮を図っています。
一方、nWOLのLAN内ホスト検索(Scan)の注意点としては以下があります。
ちょっと余談になるかもしれませんが、nWOLは複数NICにも対応しています。Wake on LANのMagicパケットも、IPアドレス情報をもとに適切なNICから送出します。当然、LAN内ホスト検索(Scan)も複数NICに対応しており、PCが接続している全てのLANに対して、ホスト検索を行います。
LAN内ホスト検索を高速に処理できることは、nWOLの特徴の一つでもある、「IPアドレス・ホスト名自動修正機能」の実現も可能にしています。
起動したいPCのIPアドレスがDHCPで動的に割り当てられている場合、そのIPアドレスが変わってしまう可能性があります。そうなると、WOLツールは、そのPCにpingすることができず、起動状態を調べることができなくなってしまいます。
「IPアドレス・ホスト名自動修正機能」は、IPアドレスやホスト名が変更されていないかを調べ、変更されていた場合、自動的にnWOL内のホスト情報を修正する機能です。物理的に固有のアドレスで変わることがないMACアドレスをキーとしてIPアドレスとホスト名の変化を調べます。LAN内ホスト検索(Scan)を行い、その情報をもとにIPアドレス・ホスト名が変更されていないかを調べます。
nWOLでは、LAN内ホスト検索が短時間でできるため、この自動修正機能を負担なく定期的に実行することができるようになっています。
「IPアドレス・ホスト名自動修正機能」の詳細については、別記事で解説していますので、そちらもぜひご覧ください。
nWOLのScanが初めて動作したときには、処理速度に我ながら感動したのを覚えてます。必要がなくてもぜひ一度やってみていただきたいです^^。スマホ、ルータ、家電など、LANにつながっている全ての機器のIPアドレス一覧を見ることができ、結構面白いですよ。
あと、細かいですが、Scanして得られたホスト情報を、設定画面からコピーできるので、他のアプリにホスト情報を持っていくことも容易になってます。
是非試してみてください。
【関連記事・関連コンテンツ】