動機


玄人指向の玄箱という製品を買いました。この商品はMelcoのリンクステーショ ンからHDDを抜いた商品です。Linuxベースのシステムで、ファイルサーバとして 使えます。Linuxが入っていますので、その他のサーバとして使うこともできま す。

この製品にモニターなどはついていません。設定は添付のCD-ROMを使って、 Windows上で設定プログラムを実行し、ネットワーク越しに設定します。 設定はうまくいくのですが、使用することができません。話は少しそれますが、 はまったポイントを書いておきます。


したいこと


ともかくネットワーク上で、玄箱を探したかったので、IPアドレスにpingをかけ ることにしました。つまり、以下のようなコマンドを作りたいのです。
ping -c 1 192.168.5.1
ping -c 1 192.168.5.2
ping -c 1 192.168.5.3
  :   :    :
これを126行書くのは大変です。そこで、以下のようなperlプログラムを書き、 実行します。
for ($i = 1; $i < 255; $i++) {
    print "ping -c 1 192.168.5.", $i, "\n";
}
このプログラムをping.perlとすると、以下のようにすると画面に表示されます。
perl ping.perl
これをリダイレクトして、一度ファイルに保存してからシェルとして実行しても 良いですし、以下のように直接実行しても構いません。
perl ping.perl | sh

考察(今後のために)


もしプログラムを間違えて、以下のように書いてしまったとします。
for ($i = 0; $i < 256; $i++) {
    print "ping -c 1 192.168.5.", $i, "\n";
}
つまり、最初と最後の行に間違ったIPアドレスにpingするプログラムを書いてし まったとします。
ping -c 1 192.168.5.0
ping -c 1 192.168.5.1
  :   :    :
ping -c 1 192.168.5.254
ping -c 1 192.168.5.255
このときは、もちろんプログラムを修正しても良いですし、リダイレクトして得 られたプログラムの最初の行と最後の行を削除しても構いません。短時間で目的 が果たせれば、手段はどうでも良いのです。