Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

ネットワーク (Network) バッチ処理 (Batch Scripts)

IPアドレスの設定を行うバッチプログラム(netshコマンド利用)のご紹介

投稿日:2021年11月2日 更新日:

 

<目次>

(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)

●実行例

(図111)切り替え前
下記のようなコマンド(例)でバッチを実行

> cd [バッチが配置されている階層(パス)]
> ./IPアドレス切り替えバッチ.bat
 
(図121)実行するバッチ
(図122)切り替え後

(1-2) 構文&説明

今回は肝となる「netsh」コマンドを使用した3行について説明します。これらの3行はそれぞれ以下の処理を行っています。
 
・構文①:IPアドレス/サブネットマスク/デフォルトゲートウェイ設定
・優先DNS設定
・代替DNS設定

●netshコマンドについて

 
netshは「Network Shell」を略した名前で、ユーザーとOSとの間のインターフェイス(=境界における情報の橋渡し)として、ローカルやリモートのネットワーク設定(IPアドレス等)を表示&変更&管理する事ができるコマンドです。
 
今回はその中でもnetshの後に「interface」コマンドを付ける事により、インターフェイスコンテキスト(※注1)にスイッチする事が出来ます。「interface」コンテキストはIPアドレス(v4,v6)を司っており、今回のテーマであるIPアドレスの設定もこの中に含まれています。
 
(参考)netshの活用例:ネットワークインターフェイスの表示
netsh interface ipv4 show interface
(図122)

(※注1)インターフェイスコンテキスト
netshを補助するDLL(ライブラリ)が提供する機能の集合体の呼称。

●構文①:IPアドレス/サブネットマスク/デフォルトゲートウェイ設定

※今回は有線LAN(イーサネット)の例でご紹介します。他のアダプタ(「Wi-Fi」など)に設定する場合は「”イーサネット”」の文言を置き換えてください(※注1)
 
(構文)
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アドレスを指定する対象の「ネットワークインターフェイス」(≒ネットワークアダプタ)の種類を指定します。

(例)
・Loopback Pseudo-Interface 1
⇒自PC内の仮想IFで、ループバックアドレス(自分自身)が設定さrている
・Wi-Fi
⇒無線通信の規格
・イーサネット
⇒有線LANの規格
・ローカル エリア接続* 1
・ローカル エリア接続* 2
⇒様々な目的(例:IPv4⇒IPv6変換)で使用される仮想NWアダプタ
・Bluetooth ネットワーク接続
⇒高周波無線通信(Bluetooth)
・vEthernet (Default Switch)
⇒HyperV用

source 「static」を指定しているので、DHCPを無効化し、固定のIPアドレスを設定する事を指示します。
address 設定するIPアドレスを指定。
⇒「%IPADDRESS%」の箇所
mask 設定するサブネットマスクを指定。
⇒「%SUBNETMASK%」の箇所
gateway 設定するデフォルトゲートウェイのIPアドレスを指定。
⇒「% DEFAULTGW %」の箇所
gwmetric 設定するデフォルトゲートウェイのメトリック(≒優先度。値低い方が優先される)
⇒最後の引数「1」

●構文②:優先DNS設定

※今回は有線LAN(イーサネット)の例でご紹介します。他のアダプタに設定する場合は「”イーサネット”」のい文言を置き換えてください。
 
(構文)
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アドレスの時と同様
(Loopback Pseudo-Interface 1/Wi-Fi/イーサネット/ローカル エリア接続* 1/ローカル エリア接続* 2/Bluetooth ネットワーク接続/vEthernet (Default Switch))

source 「static」を指定しているので、DHCPを無効化し、固定のIPアドレスを設定する事を指示します。
address 優先DNSサーバのIPアドレスです。

(※注意) 構文ではパラメータ名を省略しています。

register 指定したIPを「優先DNS」「代替DNS」のどちらに(あるいは両方)に設定するか?

(※注意) 構文ではパラメータ名を省略しています。

validate DNS設定の検証を行うかどうか。

●構文③:代替DNS設定

※今回は有線LAN(イーサネット)の例でご紹介します。他のアダプタに設定する場合は「”イーサネット”」のい文言を置き換えてください。
 
(構文)
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設定の検証を行うかどうか。

Adsense審査用広告コード


Adsense審査用広告コード


-ネットワーク (Network), バッチ処理 (Batch Scripts)

執筆者:


comment

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

関連記事

バッチ処理をX秒間待たせる(停止させる)方法

<目次> (1) バッチ処理をX秒間待たせる(停止させる)方法  (1-1) 構文①  (1-2) 構文①サンプルプログラム  (1-3) 構文②  (1-4) 構文②サンプルプログラム (1) バッ …

Proxyの基本知識と確認コマンド~OSやブラウザ別の設定について

(0)目次&概説 (1) 記事の目的 (2) プロキシの基礎知識  (2-1) プロキシとは?  (2-2) なぜプロキシが必要?   (2-2-1) 特定コンテンツの許可(OUT)   (2-2-2 …

バッチで見る「2>&1」の意味とリダイレクトの種類について

<目次> (1) バッチで見る「2>&1」の意味とリダイレクトの種類について  (1-1) 「2>&1」の意味  (1-2) 「2>&1」の各文字の意味  ( …

バッチでファイルパスやファイル名を取得する方法

<目次> (1) バッチでファイルパスやファイル名を取得する方法  (1-1) 構文  (1-2) コマンドのオプションについて  (1-3) サンプルプログラム 「for %%f in (&#822 …

Windowsのバッチで日付(yyyymmdd形式)や時刻(hhmmss形式)を取得する方法

<目次> (1) Windowsのバッチで日付(yyyymmdd形式)や時刻(hhmmss形式)を取得する方法  (1-1) バッチで日付を取得する  (1-2) バッチで日付を取得する(yyyymm …

  • English (United States)
  • 日本語
Top