■ DNS対応
IPアドレス欄にホスト名、FQDN、を記入できるようにしました。これにより、Dynamic DNSで登録されているアドレスの登録や、Active Directory と DNSを連携させた Active Directory 統合ゾーンモードで運用されている環境などで役に立つのではないかと思います。
ただ、私の開発環境では、Dynamic DNS、Active Directory環境がないため、そのような環境で快適に利用できるようになっているか、やや心配です。通常の名前解決が正しく行われる動作は確認しているのですが、何かお気づきの点がございましたら、コメントお送りいただけると助かります。よろしくお願いいたします。
■ サウンド対応
指定したホストが起動または停止した場合にサウンドを鳴らします。サウンドを鳴らす条件は、WOL起動した場合、監視対象ホストが起動した場合、などから選択できます。
DNS対応については、当初、比較的簡単に実装できるかと思っていたのですが、やってみるとかなり大がかりな改修になりました。理由は、非同期処理の実装方法の検討にかなり試行錯誤したことです。DNS名前解決の場合、特に NetBIOS の名前解決が失敗する場合、タイムアウトまで2~3秒かかるので、処理がブロックされてしまいます。それを避けるため、パケット送信処理と名前解決処理を分離して、時間のかかる可能性のある名前解決を非同期処理にしています。ただし、nWOLc.exe については、そのあたりも同期処理になっていますので、名前解決ができないホストの場合、少しタイムアウト待ちのタイムラグが発生しますのでご注意ください。
また、/32については、思わぬ >> (Bitwise and shift operator) の仕様の落とし穴に気づいてませんでした。左辺の変数のビット数以上のシフトは想定の動作にならないということです。例えば、(uint)0xFFFFFFFF >> 32 は 0 ではなく 0xFFFFFFFF となります。詳細は Microsoftのページ をご覧ください。
参考:nWOL改版履歴
【関連記事・関連コンテンツ】