はじめに
IPアドレスを変更する場合はコントロールパネルを開き、ネットワーク接続を開いて変更するのが一般的ですがLANケーブルやWi-Fiなど変更する度にいちいち開くのはとても面倒です。
また、毎回同じIPアドレスに変更する場合は覚えておく必要もあるので手間が倍増することになります。
そこでIPアドレスを自動的に変更するバッチファイルの作成方法をご紹介します。
IPアドレス変更バッチファイル
DHCPで自動取得に設定する場合
REM 管理者権限でなければ管理者実行する
whoami /priv | find "SeDebugPrivilege" > nul
IF %errorlevel% neq 0 (
@powershell start-process %~0 -verb runas
ECHO 管理者権限がありません。管理者権限で実行します
EXIT
)
ECHO 管理者権限に自動で昇格できました。
REM インターフェース名を設定
SET interface_name=Wi-Fi
REM IP アドレスを DHCP に設定する
netsh interface ipv4 set address name="%interface_name%" source=dhcp
REM DNS サーバーの設定を DHCP に設定します。
netsh interface ipv4 set dnsservers name="%interface_name%" source=dhcp
PAUSE
IPアドレスを指定して設定する場合
REM 管理者権限でなければ管理者実行する
whoami /priv | find "SeDebugPrivilege" > nul
IF %errorlevel% neq 0 (
@powershell start-process %~0 -verb runas
ECHO 管理者権限がありません。管理者権限で実行します
EXIT
)
ECHO 管理者権限に自動で昇格できました。
REM インターフェース名を設定
SET interface_name=Wi-Fi
REM IPアドレス情報を設定
SET ip_address=192.168.0.100
SET subnet_mask=255.255.255.0
SET default_gateway=192.168.0.1
REM IP アドレスを変更する
netsh interface ipv4 set add name="%interface_name%" source=static addr="%ip_address%" mask="%subnet_mask%" gateway="%default_gateway%" gwmetric=1
REM DNSサーバー情報を設定します。
SET dns_server1=8.8.8.8
SET dns_server2=8.8.4.4
SET dns_server3=1.1.1.1
netsh interface ipv4 set dns name="%interface_name%" source=static addr="%dns_server1%" register=non validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server2%" index=2 validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server3%" index=3 validate=no
PAUSE
バッチファイルの解説
管理者として実行(1~8行目)
IPアドレスをバッチファイルから変更する場合は管理者権限が必要なため、自動的に管理者権限で実行するように切り替えます。
REM 管理者権限でなければ管理者実行する
whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
@powershell start-process %~0 -verb runas
echo 管理者権限がありません。管理者権限で実行します
exit
)
echo 管理者権限に自動で昇格できました。
バッチファイルを実行しているユーザーに管理者権限が付与されていないとエラーになります
インターフェイス名の設定(11行目)
IPアドレスを変更するインターフェイスをここで指定しています。
REM インターフェース名を設定
set interface_name=Wi-Fi
インターフェイス名はコントロールパネルのネットワーク接続から確認します。
IPアドレスとDNSをDHCPに設定(13~17行目)
10行目で指定したインターフェイス名に対してIPアドレスとDNSをDHCPに設定する記述が下記になります。
REM IP アドレスを DHCP に設定する
netsh interface ipv4 set address name="%interface_name%" source=dhcp
REM DNS サーバーの設定を DHCP に設定します。
netsh interface ipv4 set dnsservers name="%interface_name%" source=dhcp
IPアドレスを指定(13~19行目)
14~16行目でIPアドレスやサブネットマスク、デフォルトゲートウェイを指定します。
REM IPアドレス情報を設定
SET ip_address=192.168.0.100
SET subnet_mask=255.255.255.0
SET default_gateway=192.168.0.1
指定されたIPアドレスなどは下記のコマンドで設定が 反映させます。
REM IP アドレスを変更する
netsh interface ipv4 set add name="%interface_name%" source=static addr="%ip_address%" mask="%subnet_mask%" gateway="%default_gateway%" gwmetric=1
DNSアドレスを指定(21~28行目)
21~24行目でDNSアドレスを指定します。
REM DNSサーバー情報を設定します。
SET dns_server1=8.8.8.8
SET dns_server2=8.8.4.4
SET dns_server3=1.1.1.1
指定されたDNSアドレスを下記のコマンドで設定が反映させます。
netsh interface ipv4 set dns name="%interface_name%" source=static addr="%dns_server1%" register=non validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server2%" index=2 validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server3%" index=3 validate=no
DNSが1つしかない場合は [dns_server2] 以降を削除して問題ありません。