はじめに
自身が操作する端末のIPアドレスを取得し、ある範囲内にマッチするかどうかを確認したい場合のサンプルプログラムです。
C#やJava、PHPなどではよくサンプルなどを見かけますが、そういった言語を利用できない場合にbatファイルでも対応できるサンプルとなります。
今回やりたいこと
- 端末のIPアドレスをipconfigを使って取得する
- ファイルに定義した範囲リストを読み込む
- 範囲リストにマッチするかどうかをチェックする
サンプルプログラム
iplist.txt
192.168.10.[1-9][0-9]*
192.168.20.[1-9]
192.168.20.[1-9][0-9]
192.168.20.1[0-1][0-9]
192.168.20.12[0-7]
ipcheck.bat
setlocal enabledelayedexpansion
REM IPアドレスを取得する
for /f “delims=: tokens=2” %%a in (‘ipconofig ^| finest “IPv4”’) do (
set IP_TMP=%%a
set IP_ADDR=!IP_TMP:~1!
)
REM ファイルで定義した範囲リストを読み込みチェックする
for /f “tokens=1,2 delims==” %%f in (ipcheck.txt) do (
set REGEX_IP=%%f
echo !IP_ADDR! | findstr /R “^REGEX_IP$” > nul
if ERRORLEVEL 0 (
echo true
goto :END
)
)
:END
exit /b 0
endlocal
iplist.txtファイルを一行ずつ読み込み、IPアドレスとマッチした場合はtrueを標準出力で出力します。
最後に
今回は自身の端末のIPアドレスを対象としましたが、引数に指定したIPアドレスをチェックするなど、いろんな用途で利用できるかと思いますので、是非参考までに