Pingをバッチファイルで実行する

Windowsサーバの動作確認でPingするんだけどサーバによってPing先が違うのでIPアドレスなんて覚えれない。

もうバッチ作ってポチった方が楽なんじゃないかと思って作ってみた。

バッチの内容

これファイル名は「Ping.bat」以外にして使ってください。

IPADDRESSをPingしたいIPに書き換えてください。

 

@echo off
set IPADDRESS=192.168.50.1
set COMMAND=ping %IPADDRESS%
set CHECK=パケット数
set NORMAL=送信 = 4、受信 = 4、損失 = 0 (0%% の損失)
set RESPONSE=からの応答
set OKMESSAGE=Ping○
set NGMESSAGE=Ping×(個別に結果を確認してください。)
echo %COMMAND% > Ping結果.log
%COMMAND% >> Ping結果.log
for /f "delims=" %%i in (Ping結果.log) do (
rem 応答したIPが宛先IPかチェックする
    echo %%i | find "%RESPONSE%" >NUL
    if not errorlevel 1 (
        echo %%i | find "%IPADDRESS%" >NUL
        if not errorlevel 1 (
            echo レスポンスIP○
        ) else (
            echo %NGMESSAGE%
            goto ENDBAT
        )
    )
rem Ping統計の確認
    echo %%i | find "%CHECK%" >NUL
    if not errorlevel 1 (
        echo %%i | find "%NORMAL%" >NUL
        if not errorlevel 1 (
            echo %OKMESSAGE%
        ) else (
            echo %NGMESSAGE%
            goto ENDBAT
        )
    )
)
:ENDBAT
pause

 

動き

IPADDRESSで指定したIPへ通常のPingを打って4回応答があれば「Ping○」を表示するだけです。

一応ファイルに出力するのでエビデンスを同時に残せます。

内容について

最初はPingを4回実行した後の「(0% の損失)」ってのを確認すればいいと思ってた。

だが、宛先が同一セグメントでPing失敗の場合は「X.X.X.X(自分のIP)からの応答」と表示される仕様でした。

これやめてほしいのだが、、

なので「からの応答」があった場合は表示されたIPが自分なのか宛先なのかをチェックして自分だと失敗にするようにしている。

コメント

タイトルとURLをコピーしました