WOLchk.cgi


[LINUX / Perl Script] WOLchk.cgi – okkun-lab WakeUP! ver.2.1

なにコレ

HTTP ベースで Wakeup on LAN (WOL) できます。
電源監視もできます。

具体的に言うと、Wakeup on LAN という、
Magic Packet をLANに投げてパソコンの電源を入れる仕組みがあります。
そのWOLをこのWebインターフェースから実行できるようにしてあります。
同時にステータス表示もできます。
スクリプトを読み込んだときに、あらかじめ登録した IP アドレスのマシンに ping を投げ、
その反応を見て電源が入っているかどうかを調査して、結果を表示します。

ついでに今回の ver2 から
電源を入っているマシンを見つける→MACアドレスを調べるを自動的に行い、
必要なら登録ボタンをクリックしてMACアドレスを CGI に自動的に登録することもできます。

要るモノ

  • 標準的な LINUX ディストリビューション
  • Apache が動いている Web サーバー(またはその上位互換)
  • wakeonlan または wakeonlan.pl (Magic Packet を投げる)
  • grep, ping, arp コマンド

設置方法

  • ディレクトリは必要に応じて作成してください。

[ディレクトリ・ファイル構成の一例]

~/ (ホームディレクトリ)
 └ public_html/ (公開されているディレクトリ)
     ├ いろいろホームページのファイルとか
     └ wol/[755]
        ├ wolchk.cgi[755] (本体)
        ├ wolchk.dat[666/644] (監視対象設定ファイル)
        ├ wolchk.log[666] (作業用ファイル))
        └ cgi-bin.pl[644] (CGI ライブラリ)
※wolchk.datは、MACアドレス自動更新を利用しないときは 644 で良い。

ダウンロード

設定

  • 文字化けを防ぐために、中身の漢字・改行コードはEUC-JPとLFです。
    メモ帳じゃなくて、他のEUCの読めるエディタで設定を編集してください。
  • 中身をいじってください。
    そのままではお召し上がりいただけません。
    スクリプト内に「ここから設定項目」と丁寧wに書いてありますので、そこをいじってあげてください。
  • 必要ならばwakeonlanというプログラムが入っているディストリビューションがあります。
    開発環境ではTurbolinux 10 serverを使っています。
    rootでwhich wakeonlanとしてみて見つからない場合は
    wakeonlan.pl (Jose Pedro Oliveira)という、Perlベースのものが公開されていますので、
    wolchk.cgiと同じディレクトリに置いて、CGIの設定でパスを設定してください。

アクセス方法

  • 普通にブラウザからCGIを呼び出してあげてください。

バージョン履歴

ver2 から ver2.1 への変更点

  • 監視対象全てを表示しないようにした。
    監視対象のうち、反応が無くて mac アドレスも未登録のものは表示を省略するようにしました。
    [full view]をクリックすると監視対象全てを表示します。
  • Excelで大量に IP アドレス作ってとりあえずネットワーク中全部監視という
    荒技ができるようになりました。
  • RELOADボタン付けました。
    F5して再送信をしなくても良くなりました。
  • 規定秒数の間は ping を送らないようにしました。
    前回のログをキャッシュとして利用し、DoS まがいの現象が発生することを防ぎました。
  • mac アドレス自動登録時にホスト名を自動解決するようにしました。
    DNSがあって、逆引きを設定してある時には
    Description の項目が未設定だとホスト名を自動的に登録します。
  • そのほか、
    見栄えをよくしてみました。

ver1 から ver2 への変更点

  • ping ブロードキャスト投げからユニキャスト投げにしたので、
    Windowsマシンでも確実に反応するようになった
    何回も投げまくるので若干処理重くなった
  • 言語をperlにしたので、
    セキュア性が若干高まったかも
    エラーにより強固に対応
  • そのほか、
    pingの応答秒数を表示
    pingが帰ってきたときはwolが送れないようにした
    wol投げのブロードキャスト指定をできるようにした(NIC2枚刺しマシン対策)

注意事項

  • 使い方や環境によっては高負荷をかけたり、アタックと見なされる可能性あり。
  • ping機能は、ループで大量に打つので、特にNIC2枚差し(WAN&LAN)の時は注意。
  • wol機能は、ちゃんと考えて打たないと、電源を入れたは良いが、切れない事態が起こる。

既知の問題

  • Nortonを入れているマシンだと
    Magic Packet を投げるとセキュリティ警告を発するようです。
    無視するしかありません。。。
  • ウイルスバスターを入れているマシンだと
    ping に反応してくれないため、通常設定だと電源監視ができません。
    電源監視が必要ならばファイアーウォールの設定で ICMP を許可してあげてください。

COPYRIGHT

  • 福岡大学研究開発室奥村研究室 の すながわひろゆき に帰属します。
  • GPL です。
    たいしたものではないので、改変は GPL + 常識の範囲内で。
  • copyright 2004-2006 SUNAGAWA Hiroyuki / okkun-lab, research and develoopment, Fukuoka University all rights reserved.

バグ報告とかご意見とか

  • 使ってくれる人はいないと思いますけど、何かありましたら すながわ まで。
    Please send me email, if you find bugs or have any question.