0
0

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 3 years have passed since last update.

Windows環境でIPアドレスを多数設定するbatファイル

Last updated at Posted at 2021-07-10

#はじめに
Windows環境で多数のIPv4アドレスを振る必要が出てきました。
IPv4アドレスを1個ずつ設定するのはとても面倒なので、自動化してやろうという魂胆です。

#やり方
pythonを使って…と思ったのですが、どうせWindowsでしか使えないですし、batファイルでもよさそうです。
今回はbatで作成します。

#書く前の整理
batファイルを書く前に何をさせるのか大まかに整理します。

###処理の内容
①IPv4アドレスを設定するコマンドをたたく
②①はループ処理の中で実行する

###注意事項
IPv4アドレスは32ビットですが、8ビットずつで合計4つに区切られます。
この区切りをオクテットと呼びます。
1オクテットの最大値は255ですので、桁上がりの時には注意が必要です。

#さっそく書いてみる

ip_add_loop.bat
@echo off

rem 変数の指定
rem -------------------------------------------------------
rem IPアドレスを設定するインタフェース名の指定
set Ifname="ローカル エリア接続"

rem 繰り返しの最初の値となるIPアドレスの
rem 第1オクテットから第4オクテットまでを設定する
set Oct1=1
set Oct2=0
set Oct3=0
set Oct4=1

rem サブネットマスクの指定
set Subnet=255.255.0.0

rem デフォルトゲートウェイ
set DefGW=1.0.2.254
rem -------------------------------------------------------

rem ループ中で変数を使うための設定
setlocal enabledelayedexpansion

rem デフォルトゲートウェイを設定する
echo netsh interface ipv4 set address name=%Ifname% source=static gateway=%DefGW%

rem ループ処理①(第3オクテットをインクリメントする用)
for /l %%m in (1,1,2) do (

  rem ループ処理②(第4オクテットをインクリメントする用)
  for /l %%n in (1,1,255) do (
    echo netsh interface ipv4 set add name=!Ifname! source=static addr=!Oct1!.!Oct2!.!Oct3!.!Oct4! mask=!Subnet! 
    rem netsh interface ipv4 set add name=!Ifname! source=static addr=!Oct1!.!Oct2!.!Oct3!.!Oct4! mask=!Subnet! 
    set /a Oct4 += 1
  )
  rem 第4オクテットが255に達したら、1に戻す。
  set /a Oct4 = 1
  
  rem 第3オクテットをインクリメントする。
  set /a Oct3 +=1
)
rem 設定の終了
endlocal
pause

#テスト
実行してみますが、実際のIPアドレス割り当ては不要なのでechoのみ実行します。
上記であれば、1.0.0.1~1.0.1.255までアドレスが表示されるはずです。

結果1.png
結果2.png
結果3.png

無事想定範囲のIPアドレスが表示されました。
桁上げ箇所も問題なさそうです。

#終わりに
batファイルを作るのはあまり慣れていないですが、何とか動くものができました。
ホストアドレス数を増やすとループが多段になってしまい処理が重くなりそうなので、
処理速度が気になる場合はif文を使うほうが良いような気がしますね。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?