高速PINGコマンド
Vector ダウンロードサイト
【 pingz.exe 】
【概要】
pingz コマンドは、Raw socketを使って独自に作成した高速 ping コマンドです。
コマンドプロンプト上で動作します。Windows OSの ping コマンドのターゲット
が単一ホストであるのに対し、pingz コマンドは複数ホストをターゲットとして
動作します。主な機能として、サブネット指定とIPアドレス一覧ファイル指定が
あります。また、ログファイル保存機能やBeep音による通知機能の他、便利な
オプション機能を多数備えています。
スレッドを一切使わずに、複数リクエストの送信処理と複数レスポンスの
受信処理を交互に実行させる事で、高速にもかかわらず、CPU負荷は殆ど上がら
ないように作成しています。
コマンドプロンプトの起動は「管理者として実行」を選択してください。
( ping の送信バッファサイズは 32Byte 固定です )
【書式】(※ pingz リターンで使用方法が表示されます)
使用法: pingz [-option] ip_address [netmask/number]
pingz [-option] -f file
*) netmask省略時、netmask=255.255.255.255
オプション:
-p アドレス空間を出力 (pingは実行しない)
-b 実行結果がNGの場合は出力しない
-B 実行結果がOKの場合は出力しない
-m 実行結果がNGの場合、音を鳴らす
-M 実行結果がOKの場合、音を鳴らす
-d nslookupの逆引き結果を出力
-I TTLの値を見て装置種別を出力
-r tracertの実行結果から通過ルートを出力
-C Ciscoライクな出力
-q RESULT行を出力しない
-v タイムスタンプを出力
-l ログファイルを出力
-t 秒数 連続して繰り返し実行 (実行間隔を指定)
-n 要求数 繰り返し回数を指定
-e 秒数 継続実行時間を指定
-w ミリ秒 タイムアウト時間を指定 (初期値=1000ms)
-N [-tne]指定時、2回目以降はNGの回線を対象とする
-L [-n]指定時、最終の実行結果のみを出力する
-f アドレス一覧ファイルを指定
-o [-f]オプション指定時、ファイルの内容を出力
-T [-f]オプション指定時、行末側のアドレスを使用する
-P 要求数 コマンドを実行する連続NG回数を指定
-Q 要求数 コマンドを実行する合計NG回数を指定
-X コマンド [-P/Q]オプション指定時、実行するコマンドを指定
例) pingz 192.168.1.1 255.255.255.240
pingz 192.168.1.1/255.255.255.240
pingz 192.168.1.1 28
pingz 192.168.1.1/28
pingz -f address.txt
pingz -f address.txt -o
pingz -f address.txt -oBqv -t 5 -P 12 -X notify.bat
【オプション】
基本的にオプションはコマンド内の何処にあっても読み取ります。
pingz -p 192.168.1.1 24
pingz 192.168.1.1 24 -p
またオプションを連続して一括指定する事も可能です。
ただし、パラメータを指定する必要があるオプションを除きます。
pingz 192.168.1.1 24 -b -v -I -t 1
pingz 192.168.1.1 24 -bvI -t 1
-p IPアドレス一覧を出力します。pingコマンドは実行しません。
サブネット内のIPアドレス空間を確認する場合に使用します。(推奨)
リダイレクト'>'でIPアドレス一覧をファイルに出力したい場合も
有効です。Windows標準コマンドの clip を使ってクリップボードに
コピーする使い方も便利です。
pingz 192.168.1.1 24 -p > file
pingz 192.168.1.1 24 -p | clip
-b ping実行結果が「NG」の場合、結果を出力しません。実行結果が
「OK」のものだけを抽出したい時に便利です。
-B ping実行結果が「OK」の場合、結果を出力しません。実行結果が
「NG」のものだけを抽出したい時に便利です。
-m ping実行結果が「NG」の場合、Beep音を鳴らします。音声により
「NG」の発生を確認したい時に便利です。
-M ping実行結果が「OK」の場合、Beep音を鳴らします。音声により
「OK」の発生を確認したい時に便利です。
-d 試験結果の行末にnslookupの逆引き結果を追記します。
(この処理はWindows標準の nslookup.exe コマンドを使用しますので、処理は遅くなります)
192.168.1.1 192.168.1.1 からの応答: バイト数 =32 時間 =14ms TTL=56 [dns.system.co.jp]
-I TTLの値を見て装置種別(Windows,Linux,NW機器)を行末に追記します。
192.168.1.1 192.168.1.1 からの応答: バイト数 =32 時間 =14ms TTL=56 (Linux)
192.168.1.2 192.168.1.2 からの応答: バイト数 =32 時間 =14ms TTL=125 (Windows)
ttl<=64 "(Linux)"
ttl<=128 "(Windows)"
ttl<=255 "(NW)"
-r tracertの実行結果から通過ルートを出力します。
(この処理はWindows標準の ping.exe コマンドを使用しますので、処理は遅くなります)
---192.168.3.1---216.58.215.255---108.170.242.161---72.14.237.223---216.58.197.227
---192.168.3.1---61.206.157.74---124.83.252.242---114.111.65.10---183.79.123.210
-d オプションと併用すると、IPアドレスをホスト名に変換して表示させる事が可能です。
ただし、以下のファイルにIPアドレスとホスト名の対応が記載されているもののみです。
C:\Windows\System32\drivers\etc\hosts
---ThisPC---DefaultGW---AAAAA---BBBBB---72.14.237.223---216.58.197.227
---ThisPC---DefaultGW---CCCCC---DDDDD---114.111.65.10---183.79.123.210
-C Cisco制RT/SW上の ping 機能と同様に、単一ホストに対して連続
ping を実施し、結果をOK='!' NG='.'で表示します。回線輻輳に
よるパケット落ちを確認する際に便利です。
!!!!!!!!!!!!!!!!!!!...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-q ping 実行結果を表す RESULT 行を出力しません。長時間に渡る周
期的な ping 実行時のログを、見やすくしたい際に指定します。
(-B オプションと併用して使用する事を想定しています)
-v ping実行時のTimeStampを出力します。[-l]オプションとセットで
使用すると実行時間がログに残るので便利です。
-l ログファイルを作成します。コマンドを実行したフォルダ上に次の
ようなファイル名で保存されます。(pingz_年月日-時分秒.log)
基本的に標準出力と同じ結果がログファイルに保存されます。
-t 連続して繰り返し実行します。単体アドレス指定に限らずサブネット
指定でもIPアドレス一覧ファイル指定でも繰り返し実行します。
パラメータとして実行間隔[秒>=0]を指定します。
-n pingの繰り返し回数を指定します。自動的に[-t 0]オプションも指定
されます。[-t]オプションを明記すると実行間隔を変更できます。
-e pingの終了時間を[秒数]で指定します。自動的に[-t 0]オプションも
指定されます。( 1時間連続で実行する場合、3600 を指定します )
[-t]オプションを明記すると実行間隔を変更できます。
-w タイムアウト時間(ミリ秒)を変更する際に指定します。(初期値=1000ms)
-N [-t/-n/-e]等の連続指定時、2回目以降はNGホストのみを対象にping
を実施します。これは対象とするホストが膨大にある場合、NGホストの
探索を効率良く実施する際に使用します。
(-B オプションと併用して使用する事を想定しています)
-L [-n]の連続指定時、最終の実行結果のみを出力します。
これは[-N]オプションと併用して使用する事を想定しており、
PING応答が1回もないホストの一覧を収集する場合や、
PING応答が1回でもあったホストの一覧を収集する場合等です。
-f IPアドレス一覧ファイルを指定する場合のオプションです。
1行毎にIPアドレスを記載しますが、日本語を含む他の文字がIPアドレスの
前後にあっても自動的にIPアドレスを検知します。
ただし、複数存在する時は行頭に近い方を採用します。
また、'#'を記載するとその文字以降をコメントとして扱います。
ファイル行数の制限は65,536になります。最大35,000行で動作させた実績があります。
1行の文字数制限は半角で250文字までです。
-o [-f]オプション指定時、IPアドレス一覧ファイルの各行をコメント
を含めてそのまま出力し、行頭にping実行結果を記号で表示します。
* 192.168.16.100 server100.local [OKの場合]
192.168.16.101 server101.local [NGの場合]
! 192.168.16.102 server102.local [OTHERの場合]
OTHERとは、pingの応答はあったが、指定したIPアドレスからの応答では
ない場合を示しています。
-T [-f]オプション指定時、IPアドレスが行内に複数存在する際は
行末に近い方のIPアドレスを採用します。
-P 特定コマンドを実行したい際のトリガとなる連続NG回数を指定します。
連続NG回数を表す "NG=数字" が行末に表示されます。この表示だけを
実施させたい場合は "-P 0" とでも記載してください。
-Q 特定コマンドを実行したい際のトリガとなる合計NG回数を指定します。
合計NG回数を表す "NT=数字" が行末に表示されます。この表示だけを
実施させたい場合は "-Q 0" とでも記載してください。
-X [-P/Q]オプション指定時に実行したい特定コマンドを指定します。
(ポップアップ画面出力や音声再生を想定しています)
========================================================
# ポップアップ画面出力 サンプル
# pingz 192.168.0.1 -t 1 -P 5 -X 画面出力.vbs
========================================================
MsgBox "故障発生", 48+4096, "警告"
========================================================
# 音声再生スクリプト サンプル
# pingz 192.168.0.1 -t 1 -P 5 -X 音声再生.vbs
========================================================
Set player = CreateObject("WMPlayer.OCX")
player.URL = "C:\PINGZ\故障が発生しました.wav"
player.Settings.Volume = 100
player.Controls.Play
While player.PlayState <> 1
WScript.Sleep(100)
WEnd
Set player = Nothing
■■■■ 常時監視を行う方法 ■■■■
pingz コマンドを使って常時監視を行う方法を説明します。
WindowsサーバやWindowsパソコン上で、バックグラウンドの監視を行ないます。
エラーが発生すると年月日名のファイルにログが蓄積されます。
また、指定されたメールアドレスにエラー内容を通知します。
================================
# PINGZ フォルダを作成します
================================
C:\>mkdir C:\PINGZ
================================
# C:\PINGZ\LIST をエディターで作成します
================================
(例)
210.172.40.1 www.ntt-west.co.jp
23.42.73.251 www.ntt.com
106.162.242.107 www.kddi.com
23.218.23.22 www.softbank.jp
216.58.197.163 www.google.co.jp
182.22.24.252 www.yahoo.co.jp
================================
# C:\PINGZ\start_pingz.vbs をエディターで作成します
================================
Set objWS = CreateObject("WScript.Shell")
objWS.CurrentDirectory = "C:\PINGZ"
Return = objWS.Run("command.bat", vbHide, False)
Set objWS = Nothing
================================
# C:\PINGZ\command.bat をエディターで作成します
================================
@echo off
set D=%date%
set DD=%D:~0,4%%D:~5,2%%D:~8,2%
pingz -f LIST -oNBqv -n 4 -t 1 -P 0|find "NG=4" > LOG
for /f %%L in ('type LOG ^| find /c /v ""') do set LINE=%%L
if %LINE% geq 1 type LOG >> %DD%.log & send_mail.vbs
del /f LOG
================================
# C:\PINGZ\send_mail.vbs をエディターで作成します
================================
Set objFS = CreateObject("Scripting.FileSystemObject")
Set fp = objFS.OpenTextFile("C:\PINGZ\LOG", 1)
BUF = Now & vbCrLf
BUF = BUF & "PINGZ試験でエラーを検知しました" & vbCrLf
BUF = BUF & vbCrLf
BUF = BUF & fp.ReadAll
BUF = BUF & vbCrLf
fp.Close
Set fp = Nothing
Set objFS = Nothing
Set objCM = CreateObject("CDO.Message")
objCM.From = "●メールアドレス"
objCM.To = "●メールアドレス"
objCM.Subject = "●【システム名】故障が発生しました"
objCM.TextBody = BUF
URL = "http://schemas.microsoft.com/cdo/configuration/"
objCM.Configuration.Fields.Item(URL & "sendusing") = 2
objCM.Configuration.Fields.Item(URL & "smtpserver") = "●SMTPサーバアドレス"
objCM.Configuration.Fields.Item(URL & "smtpserverport") = ●SMTPポート番号
objCM.Configuration.Fields.Item(URL & "smtpusessl") = ●True/Flase
objCM.Configuration.Fields.Item(URL & "smtpauthenticate") = 1
objCM.Configuration.Fields.Item(URL & "sendusername") = "●ユーザID"
objCM.Configuration.Fields.Item(URL & "sendpassword") = "●パスワード"
objCM.Configuration.Fields.Update
objCM.Send
Set objCM = Nothing
================================
# ファイルを確認します
================================
C:\>dir /B C:\PINGZ
command.bat
LIST
pingz.exe
send_mail.vbs
start_pingz.vbs
================================
# タスク スケジューラに登録します
================================
コントロールパネル>管理ツール>タスク スケジューラ>タスク スケジューラ ライブラリ>タスクの作成
[全般タブ]
《名前》に[PINGZ監視]と記入
[トリガー]
《新規》
《1回》を選択し、開始日時を設定
《繰り返し間隔》をチェックし、[5分間]を選択
《継続時間》は[無期限]を選択
《OK》
[操作]
《新規》
《参照》[C:\PINGZ\start_pingz.vbs]を選択
《開く》
《OK》
以上です
【インストール方法】
"C:\WINDOWS\system32" 配下に「pingz.exe」ファイルをコピーするだけです。
( Path が設定されているフォルダであれば何処でもOKです )
【アンインストール方法】
コピーした「pingz.exe」ファイルを削除するだけです。
========================================================================
pingz.exe は基本版と拡張版があり、基本版はフリーソフトですが、
拡張版はシェアウェアになっています。
基本版と拡張版には以下の違いがあります。
・指定できるサブネットマスク長が 32bit〜25bit (拡張版は 32bit〜16bit)
・ファイル指定事のファイル行数が 128 行まで (拡張版は 65536 行まで)
========================================================================