8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

高速マルチスレッドIPスキャンツール【MultiIPScan】の紹介

Last updated at Posted at 2018-07-15

#はじめに
自作のIPスキャンツール【MultiIPScan】の紹介です。

[【MultiIPScan】紹介ページ(Vector)]
(https://www.vector.co.jp/soft/winnt/net/se517709.html)

キャプチャ_20180715223028.PNG

今回紹介する【MultiIPScan】の機能からは少し外れる話題ですが、

遠隔のLAN内の使用中(もしくは未使用)のIPアドレスを調査したい場合、pingを始めとしたICMPのツールでは、相手側のパーソナルFW等の設定によりICMPをブロックする機器からの応答を確認することができません。

しかし、通常はARPまでブロックするような設定にはしないため、接続元のL2スイッチ(もしくは無線AP)のMACアドレステーブルを調査することにより、pingの応答が無い場合でも使用中のIPアドレスを調べることができます。
(もちろん、直接つながれているLANの場合は、自分のPCのARPテーブルを見れば良い。)

とはいえ、MACアドレステーブルを学習させるとしても、キャッシュには時間制限があるため、LANセグメント全体に一斉に問い合わせを送りたいときがあります。

制作したきっかけは、遠隔の数百台のワークSW群に、手っ取り早くMACアドレスを学習させるために、手っ取り早くまとめてpingを送れないか、ということでした。

遠隔のL2スイッチに自動ログインしてコマンドを実行し、使用中のIPアドレスとMACアドレス、接続ポートを表にまとめるツールも自作で持っていますが、紹介はまたの機会に...。

#■使用用途・目的

開始IPアドレスから終了IPアドレスまでの範囲の各IPアドレス宛に ping(icmpリクエスト)を送信し、応答を確認することができます。

ログモード(pingの結果の表示)については、

応答のあったIPアドレスのみを表示する[簡易モード]と、
pingの実行結果をすべて報告する[詳細モード]の2つのモードがあります。

各IPアドレスへのpingの送信は、マルチスレッド(1~2,048スレッドから 選択可)により並列で処理されるため、対象アドレス全体のIPスキャンを高速に行うことができます。

#■使用方法および注意事項など

MultiIPScan の実行には、.NET Framework 4.0 が必要です。
IPアドレスの指定は、IPv4のみで、IPv6は指定できません。

##★IPスキャンの開始手順

①.<開始IPアドレス>および<終了IPアドレス>を入力します

②.<同時起動スレッド数>、<各ping送信回数>、
    および各種オプションを指定し、
    表示されている<予想所要時間>を確認します

③.<IPスキャン開始>ボタンをクリックしてください

<同時起動スレッド数>や<各ping送信回数>などによって、最少の所要時間は異なってきます。

<同時起動スレッド数>がNICやネットワーク媒体のスループット許容量に対して多い場合は、ping実行時に例外(ping送信失敗)が発生する可能性が高くなるのでご注意ください。

必要に応じて、<タイムアウト>や、<TTL>、<データサイズ>、<フラグメント禁止>などのオプションを指定することもできます。

##※処理時間の目安
同時起動スレッド数が大きいほど、一度にIPスキャンを行うIPアドレス数が大きくなるため、対象アドレス全体のIPスキャンにかかる所要時間は小さくなりますが、

CPU負荷、他のプロセスの処理遅延、NICおよびネットワーク媒体等への負担が大きくなりますので、

適度なバランスを考慮し、同時起動スレッド数を決めてください。

OS のスレッド生成処理の都合上、処理開始直後のスレッドの起動には多少の時間がかかります。

また、応答のあるIPアドレスの数が多いほど、各ping処理がタイムアウトまで待機する時間が不要になるため、処理時間が速くなります。

項目 例1 例2 例3 例4 例5 例6 例7
対象IPアドレス数 256 256 1,024 1,024 65,536 65,536 65,536
ログモード 簡易 簡易 簡易 簡易 簡易 簡易 簡易
同時起動スレッド数 64 256 64 256 64 2,048 2,048
各ping送信回数 3 3 3 3 3 3 1
タイムアウト[ms] 1,000 1,000 1,000 1,000 1,000 1,000 1,000
予想処理時間(目安) 16秒 8秒 64秒 20秒 4,096秒 167秒 103秒

そのほかのアプリケーションの動作やネットワークの負荷の状況によって異なります。あくまで目安です。

#■種別
フリーソフト

#■動作環境

・Windows Vista 以降
・Windows Server 2008 以降

なお、実行するには .NET Framework 4.0 以降が必要です。

#■免責

・動作確認には細心の注意を払っていますが、このソフトを使ったことによるいかなる損害に対しても作者は責任を負いません。

・ご使用については自己責任の元でお願いします。

・オリジナルを私の WEB サイトで配布している関係で、他 WEB サイトへの転載はご遠慮ください。

#■インストール・アンインストール

以下のファイルが含まれています。

MultiIPScan.exe  プログラム本体

readme.txt       説明書

logフォルダ      IPスキャン(ping)実行結果格納先フォルダ
                 (無ければ自動で作成されます)

readme.txt をお読みになったあと、

MultiIPScan.exe を実行すれば、『MultiIPScan』が起動します。
アンインストールは、上記のファイル・フォルダを削除するだけです。

#関連ツール
[高速マルチスレッドping&tracerouteツール【pingkeeper】の紹介]
(https://qiita.com/gx3n-inue/items/160582704c44424e32d5)

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?