CommentsTweetPocket特定のネットワークに対し、疎通確認や稼働しているホストを確認する場合、よく以下のようなforを使用して確認処理を行うことがある。doneただ、コレってやはりちょっと扱いにくい上、1個づつping打ってくからやっぱ遅い。接続しているセグメントだったら、arp-scanだったりnmapだったり使えばすぐに取得できるのだが、その辺のコマンド入れてない(or入れられない)環境だったりした際に、コレをやるのはやはり面倒。手打ちしたらtypoする長さだし。そもそも今の時代だったら帯域も1Gbpsで構成されている場合が多い(古くてもまぁ100MBpsはあるでしょと)わけで、例えば一気に/24で254個分のping打ったところで、大した影響は無いだろうと(環境によっては瞬間的とはいえ、プロセスが254個増えるのはちょっと問題あるかもだけど)。言え、ちょっとは気にしてpingで送るパケットサイズは最小にしておいた上で、以下のようにコマンドを実行して一気にpingを実行してやる。X)で違うので、それぞれで分けて記述しておく。ついでに、timeコマンドで処理時間も計測。0m0.076s計測結果を見るとわかるように、1秒ほどで254台に対して疎通確認を行うことができた。ちなみに、このやり方だとTTLも確認ができるので、対象のIPアドレスのOSが何を使ってるのかについても大体推測ができる(64だとLinux、124だとWindows、256だとUNIX系と推測できる)。~番外編~MacやLinuxはこれで良いとして、Windowsではどうすればいいか。Windowsの機能を利用すれば同じことができるだろう(中身Ubuntuだし)。3以降が入っているようなら、以下のようにコマンドを実行することで(ちょっと遅い+長いけど)pingをパラレルに実行できそうだ。PowerShellでパラレルでのコマンド実行を行う場合、どうもwordkflowとして定義が必要になるらしいので、このような形になった。blacknonインフラエンジニア(...のつもり)。仕事で使うならクライアントはWindowsよりはUNIXの方が好き。Commentコメントをキャンセルメールアドレスが公開されることはありません。