WindowsのIPアドレス変更。
ネットワーク接続の画面を開いて、アダプタのプロパティを開いて…
と、何かと面倒なIPアドレスの変更。
特に検証端末や、複数のNWを繋ぎかえる環境では地味に手間です。
というわけで、今回はバッチ化して楽に変更する方法をご紹介します!
この記事では以下のことが分かります!
- IPアドレスをコマンドで変更する方法
- DNSサーバをコマンドで指定する方法
- IP・DNSの設定変更をバッチで自動化する方法
netshコマンドでIPアドレス変更
バッチファイルの前に、コマンドの紹介をしていきましょう。
WindowsのIPアドレスを変更するには以下のコマンドを使用します。
コマンドプロンプトを管理者権限で開く必要があります。
netsh interface ipv4 set address name=<インターフェース名> static <IPアドレス> <サブネットマスク> <デフォルトゲートウェイ> <メトリック>
それぞれのオプションの解説をしていきます。
- ipv4 set address
IPv4アドレスを変更する際に利用します。 - nameオプション
インターフェース名を指定します。 - static オプション
固定IPアドレスを利用します。 - staticオプションに続けて、IPアドレス・サブネットマスク・デフォルトゲートウェイ・メトリックを記述します。
netshコマンドでDNSサーバの設定変更
上記のコマンドでIPアドレスの変更ができました。
しかし、DNSサーバのアドレスは置き換わりません。
DNSサーバの設定を変更する場合は以下のコマンドを利用します。
netsh interface ipv4 set dnsservers name=<インターフェース名> static <DNSサーバ1> primary validate=no
netsh interface ipv4 add dnsservers name=<インターフェース名> static <DNSサーバ2> index=2 validate=no
こちらのオプションも解説していきます。
- ipv4 set dnsservers
DNSアドレスを変更する際に利用します。 - nameオプション
インターフェース名を指定します。 - static オプション
固定IPアドレスを利用します。 - staticオプションに続けてDNSサーバのアドレスを指定します。
- primary オプション
優先DNSサーバを指定する場合は、このオプションを指定します。 - validate=no
設定変更する際のエラー出力を抑制します。 - ipv4 add dnsservers
DNSサーバを複数指定する際は、addを使用して設定を追加します。 - index オプション
代替DNSサーバを使用する際に利用します。2つ目のDNSサーバの場合は2を指定します。
バッチファイルで一括変更
これまで紹介したコマンドを使用し、
それぞれのオプションの部分を変数に置き換えバッチ化しましょう。
@echo off
set IFNAME="イーサネット"
set IP=192.168.1.1
set MASK=255.255.255.0
set GW=192.168.1.254
set DNS1=8.8.8.8
set DNS2=8.8.4.4
netsh interface ipv4 set address name=%IFNAME% static %IP% %MASK% %GW% 1
netsh interface ipv4 set dnsservers name=%IFNAME% static %DNS1% primary validate=no
netsh interface ipv4 add dnsservers name=%IFNAME% static %DNS2% index=2 validate=no
ipconfig /all
pause
IPアドレスを変更した後、「ipconfig /all」で変更内容を表示するようにしました。
上記の一連のコマンドを.batとしてバッチファイルに保存して、
管理者として実行することで、IPアドレスとDNSサーバを一気に変更することができます。
変数部分は自身の環境に合わせて変更してください。
まとめ
今回はIPアドレスをバッチで自動変更する方法をご紹介しました。
バッチファイルをいくつか作っておけば、いつでも簡単にIPアドレスを変更することができます。
ぜひご活用ください!
それでは!