雑記帳@こけし

せっかくやったことを書き留めてるだけのブログ

コマンドプロンプトからIPアドレスを変更する

はじめに

IPアドレスをいちいちコントロールパネルから変更するのが面倒で batを作成した際に詰まったこと等、己の後生のために書き残す。

使用するコマンド

netshコマンドを使用 出来ることは以下の通り。 今回使うのはset addressのみ

C:\Windows\system32>netsh interface ip set

使用できるコマンドは次のとおりです:

このコンテキストのコマンド:
set address    - インターフェイスに IP アドレスまたはデフォルト ゲートウェイを設定します。
set compartment - コンパートメント構成パラメーターを変更します。
set dnsservers - DNS サーバーのモードおよびアドレスを設定します。
set dynamicportrange - 動的ポート割り当てに使用するポートの範囲を変更します。
set global     - グローバル構成一般パラメーターを変更します。
set interface  - IP のインターフェイス構成パラメーターを変更します。
set neighbors  - 近隣アドレスを設定します。
set route      - ルートのパラメーターを変更します。
set subinterface - サブインターフェイス構成パラメーターを変更します。
set winsservers - WINS サーバーのモードおよびアドレスを設定します。

C:\Windows\system32>

使用例

[ ]内は設定したい内容を任意で記入

固定のIPを設定する場合

DNS部の設定は未検証。

netsh interface ip set address [インターフェース名] source=static address=[設定IPアドレス] mask=[サブネットマスク] gateway=[ゲートウェイ]

DHCPを設定する場合

netsh interface ip set address [インターフェース名] dhcp
netsh interface ip set dns [インターフェース名] dhcp

インターフェースについて

Windows7とwindows10でデフォルトのインターフェース名が異なっているので注意。 追加でNICを増やしたり、仮想NICを設定している場合も同様です。 作業時はipconfigで作業対象のインターフェースを確認すること。 (Windows8は検証してません)

  • Windpws7の場合、ローカル エリア接続
イーサネット アダプター ローカル エリア接続:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: XXX.XXX.XXX.XXX
   サブネット マスク . . . . . . . . . .: XXX.XXX.XXX.XXX
   デフォルト ゲートウェイ . . . . . . .: XXX.XXX.XXX.XXX
  • Windpws10の場合、アダプター イーサネット
イーサネット アダプター イーサネット :

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: XXX.XXX.XXX.XXX
   サブネット マスク . . . . . . . . . .: XXX.XXX.XXX.XXX
   デフォルト ゲートウェイ . . . . . . .: XXX.XXX.XXX.XXX

困った例

連続で静的IPを設定したり、動的IPを設定したりすると 以下のようなメッセージが表示される場合はある。 ただし、コントロールパネルから実際の設定を見るとDHCPになっておらず 静的IPが残ったままになってしまう。 正直いって、原因がわからなかったがインターフェースの落とし上げを入れることによってこのメッセージが表示される事象は起きなくなりました。

C:\Windows\system32>netsh interface ip set address "ローカル エリア接続" dhcp
DHCP はこのインターフェイスで既に有効です。

以下、有効・無効のコマンド

#無効
netsh interface set interface [インターフェース名]  disable
#有効
netsh interface set interface [インターフェース名]  enable