bat/cmd

範囲指定Pingバッチファイル作成の備忘録

こんばんは!ネットワークで通信を確認する時に使うのがPingというコマンドです。ネットワークエンジニアは、サーバーやパソコンにPing疎通確認を行なうためこのコマンドはよく使うコマンドです。

範囲指定Pingバッチファイル

Pingは通常、1台ごとにPingコマンドを打つしかできませんが、今回のバッチファイルを使うと指定した範囲IPアドレス全部に1台ずつPingを飛ばすことが出来ます。

範囲指定をしてPingを作成するツールはExPingなどが有名です。Expingが使用できない場合などに使えるPing結果が分かるツールです。

範囲指定Pingバッチファイル使い方

①バッチを実行すると対話式で第1~第3オクテッドのアドレスを入力していきます。第4オクテッドで範囲(レンジ)を決めます。

ping 範囲指定
Pingレンジ

②Ping 結果.txtに出力されます。ログとしても後から確認できます。

ping 範囲指定

範囲指定Pingのコード

ここからは範囲指定Pingのバッチファイル作成方法です。

事前にCドライブ直下に「log」フォルダを作成してください。このバッチファイルは「log」フォルダの中にPing結果を出力します。

下記のコードをメモ帳に貼付け保存 > 拡張子は.batとして保存すれば完成です。

@echo off
echo ————————————–
echo ■Pingレンジ
echo ————————————–
echo pingを飛ばすセグメントを入力します。
rem
set /p Slt1=第1オクテッドの値:
set /p Slt2=第2オクテッドの値:
set /p Slt3=第3オクテッドの値:
echo.
echo.
set /p SEGstart=第4オクテッドのセグメント範囲の始値:
set /p SEGend=第4オクテッドのセグメント範囲の終値:
echo.
echo.
echo ping範囲 %Slt1%.%Slt2%.%Slt3%.%SEGstart% ~ %SEGend%への通信確認中
echo.
echo.
echo ■■■■■■■■■■■■■■■■■ > “C:\log\ping結果( %Slt1%.%Slt2%.%Slt3%).txt”
echo ping範囲 %Slt1%.%Slt2%.%Slt3%.%SEGstart% ~ %SEGend% >> “C:\log\ping結果(%Slt1%.%Slt2%.%Slt3%).txt”
echo ■■■■■■■■■■■■■■■■■ >> “C:\log\ping結果(%Slt1%.%Slt2%.%Slt3%).txt”
echo.
echo.
:LOOP
IF %SEGstart% GTR %SEGend% (
GOTO EXITLOOP
)
ping -n 3 %Slt1%.%Slt2%.%Slt3%.%SEGstart% >> “C:\log\ping結果(%Slt1%.%Slt2%.%Slt3%).txt”
set /A SEGstart+=1
echo.
GOTO LOOP
echo.
:EXITLOOP
find “TTL” “C:\log\ping結果(%Slt1%.%Slt2%.%Slt3%).txt” > “C:\log\ping結果OK (%Slt1%.%Slt2%.%Slt3%).txt”
echo.
pause
rem ▼▼▼ プロンプトに出力する ▼▼▼
for /f “delims=” %%a in (C:\log\ping結果OK(%Slt1%.%Slt2%.%Slt3%).txt) do (
echo %%a
)
pause
C:\log\ping結果OK(%Slt1%.%Slt2%.%Slt3%).txt
echo.
rem 処理終了
goto :eof
exit

範囲指定Pingの詳細

このバッチファイルはPing範囲指定で疎通確認後、全ての結果をping確認.txt に出力し保存します。クリックしただけですぐ使用できます。

その後、Ping確認.txt 内の TTL という文字列が含まれている行のみを Ping結果OK.txt へ出力します。

全部のPing結果Ping通信結果OKのみの結果の両方の結果が解ります。

Expingの方が便利かもしれないですが修正すれば色々応用が利くので使ってみてください。

それではー!

ABOUT ME
なお
フルスタックエンジニアを目指すサラリーマン。インフラ、WEBを中心に色んなIT関連情報に手を出したいと思います。
ブログランキング

POSTED COMMENT

  1. 匿名 より:

    お借りしました。
    修正が必要でしたので共有致します。

    ①冒頭echo直後は-などに置換
    区切りで使用されたことと思いますが、
    —はunicode形式の文字であるためbat動作させるためANSIとして保存すると?に文字化けします。

    ②“delims=”などに使用された囲みを”へ置換
    全角”“は機能しませんので
    ファイルパスが通らずエラーが発生します。

    お借りした立場ではありますが、大変便利な仕組みだと思いましたので、折角であれば実動作を確認頂いたbatの中身をコピペ頂ければなぁと思います。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA