Windows IPアドレス変更 バッチファイル


 Windows 7 のラップトップPCを使っているのですが、 IP アドレスを変更する機会が頻繁にあるため、バッチファイルに netsh コマンドを記述して手早く切り替えられるようにしています。

  • DHCP で IPアドレスを取得する場合
@echo off
setlocal

rem インターフェイス名称を変数(IFNAME)として定義。名称に空白(スペース)を含むため、""で囲みます。
set IFNAME="ローカル エリア接続"

rem IPアドレスを DHCP で取得。
netsh interface ipv4 set address name=%IFNAME% source=dhcp

rem DNSサーバーのアドレスをDHCPで取得。
netsh interface ipv4 set dns name=%IFNAME% source=dhcp

 インターフェイスの部分は、インターフェース名称 もしくは インデックス で指定します。 (名称は コマンドラインから ipconfig コマンド で確認するか、コントロールパネル のネットワークと共有センター > 「アダプターの設定の変更」 からも確認できます。  一つのLANポートしか持っていない日本語Windows 7 であれば上記の文字列のはず。 また、ちゃんと確認してないのですが、WIndows 10 からは別の文字列になったようです。)

 

 インデックスは、下記のコマンドで確認できます。

netsh interface ipv4 show interface

 下記の場合、「ローカルエリア接続」 の インデックス(Idx)は 「11」 になります。

 

 

  • 固定IP アドレスを設定するバッチファイル
@echo off
setlocal

rem インターフェース名称を変数(IFNAME)として定義。名称に空白(スペース)を含むため、""で囲みます。
set IFNAME="ローカル エリア接続"

rem IPアドレスを変数(IPADDR)として登録
set IPADDR=10.10.10.1

rem サブネットマスクを変数(MASK)として登録
set MASK=255.255.255.0

rem デフォルトゲートウェイを変数(GW)として登録
set GW=10.10.10.254

rem DNSサーバーを変数(DNS1,DNS2)として登録
set DNS1=10.10.10.10
set DNS2=10.10.10.11

rem IPアドレス、マスク、デフォルトGW を設定。
netsh interface ipv4 set address name=%IFNAME% source=static address=%IPADDR% mask=%MASK% gateway=%GW% gwmetric=1


rem DNSサーバーを設定(優先順位 1 に 変数 DNS1 を)(validate=no ; DNSサーバーの検証なし)
netsh interface ipv4 add dnsservers name=%IFNAME% address=%DNS1% index=1 validate=no


rem DNSサーバーを設定(優先順位 2 に 変数 DNS2 を)( validate=no ; DNSサーバーの検証なし)
netsh interface ipv4 add dnsservers name=%IFNAME% address=%DNS2% index=2 validate=no


 

 こんな具合で DHCP用や 各環境用のIP設定バッチファイルを作成し、一箇所のフォルダーに纏めてます。

 各ファイルを右クリックして、「管理者として実行」 すると反映されます。

 

 ちなみに、hosts ファイルへのショートカット

 C:\Windows\System32\drivers\etc\hosts

 もこのフォルダに作成してます。すぐ編集できるので、重宝です。 ^^)

 

 netsh コマンドについては Microsoft の MSDN netsh に詳しく解説があります。

 

コメントを残す

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