<目次>
(1) IPアドレスの設定を行うバッチプログラム(netshコマンド利用)のご紹介
(1-1) バッチプログラム(例)
(1-2) 構文&説明
(1) IPアドレスの設定を行うバッチプログラム(netshコマンド利用)のご紹介
本記事では、IPアドレスの切り替えを行うためのバッチ処理(netshコマンドを利用)のプログラムを紹介します。
(1-1) バッチプログラム(例)
●サンプルプログラム(※IPアドレスは例です)
@echo off pause set IFNAME="イーサネット" set IPADDRESS=192.168.xxx.xxx set SUBNETMASK=255.255.255.0 set DEFAULTGW=192.168.xxx.xxx set DNSSERVER1=10.0.xxx.xxx set DNSSERVER2=10.249.xxx.xxx netsh interface ipv4 set address name=%IFNAME% static %IPADDRESS% %SUBNETMASK% %DEFAULTGW% 1 netsh interface ipv4 set dnsservers name=%IFNAME% static %DNSSERVER1% primary validate=no netsh interface ipv4 add dnsservers name=%IFNAME% %DNSSERVER2% index=2 validate=no ipconfig /all pause
(図100)
●実行例
> cd [バッチが配置されている階層(パス)] > ./IPアドレス切り替えバッチ.bat
(1-2) 構文&説明
●netshコマンドについて
netsh interface ipv4 show interface
●構文①:IPアドレス/サブネットマスク/デフォルトゲートウェイ設定
set IFNAME="イーサネット" set IPADDRESS=XXX.XXX.XX.XXX set SUBNETMASK=XXX.XXX.XXX.XXX set DEFAULTGW=XXX.XXX.XXX.XXX netsh interface ipv4 set address name=%IFNAME% static %IPADDRESS% %SUBNETMASK% % DEFAULTGW % 1
「netsh interface ipv4 set XXXXX」でイーサネット(有線)のIPアドレスを設定する場合
address name | IPアドレスを指定する対象の「ネットワークインターフェイス」(≒ネットワークアダプタ)の種類を指定します。
(例) |
source | 「static」を指定しているので、DHCPを無効化し、固定のIPアドレスを設定する事を指示します。 |
address | 設定するIPアドレスを指定。 ⇒「%IPADDRESS%」の箇所 |
mask | 設定するサブネットマスクを指定。 ⇒「%SUBNETMASK%」の箇所 |
gateway | 設定するデフォルトゲートウェイのIPアドレスを指定。 ⇒「% DEFAULTGW %」の箇所 |
gwmetric | 設定するデフォルトゲートウェイのメトリック(≒優先度。値低い方が優先される) ⇒最後の引数「1」 |
●構文②:優先DNS設定
set IFNAME="イーサネット" set DNSSERVER1=XXX.XXX.XXX.XXX set DNSSERVER2=XXX.XXX.XXX.XXX netsh interface ipv4 set dnsservers name=%IFNAME% static %DNSSERVER1% primary validate=no
「netsh interface ipv4 set XXXXX」優先DNSサーバのIPアドレスを設定する場合
dnsservers name | IPアドレスを指定する対象の「ネットワークインターフェイス」(≒ネットワークアダプタ)の種類を指定します。
⇒種類はIPアドレスの時と同様 |
source | 「static」を指定しているので、DHCPを無効化し、固定のIPアドレスを設定する事を指示します。 |
address | 優先DNSサーバのIPアドレスです。
(※注意) 構文ではパラメータ名を省略しています。 |
register | 指定したIPを「優先DNS」「代替DNS」のどちらに(あるいは両方)に設定するか?
(※注意) 構文ではパラメータ名を省略しています。 |
validate | DNS設定の検証を行うかどうか。 |
●構文③:代替DNS設定
set IFNAME="イーサネット" set DNSSERVER1=XXX.XXX.XXX.XXX set DNSSERVER2=XXX.XXX.XXX.XXX netsh interface ipv4 add dnsservers name=%IFNAME% %DNSSERVER2% index=2 validate=no
「netsh interface ipv4 add XXXX」で代替DNSサーバのIPアドレスを設定する場合
dnsservers name | ※省略 (優先DNSに同じ) |
address | 優先DNSサーバのIPアドレスです。
(※注意) 構文ではパラメータ名を省略しています。 |
index | 何番目の設定か?を指定します。 (例では2を指定しているので、2番目の代替) |
validate | DNS設定の検証を行うかどうか。 |