たまにコマンドプロンプトからIPアドレスを変更することがあるが、書き方をよく忘れるのでメモ。なお、この記事では「IPアドレス」といえば「IPv4アドレス」のことを指す。
コマンド例
以下のネットワーク設定に変更する。
- IPアドレス:192.168.10.1
- サブネットマスク:255.255.255.0
- デフォルトゲートウエイ:192.168.10.254
- 優先DNSサーバ:192.168.100.1
- 代替DNSサーバ:10.168.200.1
netsh interface ipv4 set address name="イーサネット" source=static address=192.168.10.1 mask=255.255.255.0 gateway=192.168.10.254
netsh interface ipv4 set dns name="イーサネット" source=static address=192.168.100.1 register=primary validate=no
netsh interface ipv4 add dns name="イーサネット" address=10.168.200.1 index=2 validate=no
解説
netsh.exeを使う。
IPアドレスの変更は管理者権限でないとできない。なので、コマンドプロンプトを管理者権限で起動してからコマンドを流すこと。
一行目
IPアドレス・サブネットマスク・デフォルトゲートウェイを変更する。
二行目・三行目
DNSサーバを変更する。
補足
よく間違えやすいコマンド
net.exe
net startなど、主にサービス関係で使用するコマンド。「net」とあるのでネットワーク関係のコマンドのように見えるが、実際にはネットワーク設定を変更する機能はない。
netstat.exe
通信ポートの状態を表示するコマンド。こちらはnet.exeとは違いネットワーク関係のコマンドだが、IPアドレスを変更する機能はない。
DNSサーバ変更の必要性
二行目と三行目でDNSサーバを変更しているが、「IPアドレスの変更でこの作業いるのか?」と思うかもしれない。しかし、例えばDHCPから静的IPアドレスに変更する場合、IPアドレスの変更しか行わないとDNSサーバが未登録の状態になり名前解決ができなくなる。この状態になると、例えばインターネット上のサイトにアクセスできなくなるといった症状が発生する。
なので、私はIPアドレスのみを変更する場合であっても「DNSサーバの設定が漏れるよりは登録まで行うのが無難」という考えでDNSサーバの変更まで掲載している。変更したアドレスが間違っていて名前解決できなくなった、というリスクはあるが…。
ネットワークについてある程度理解されている方であれば、DNSサーバの変更は省略してもかまわない。
おわりに
この記事を書くきっかけは、Windows11のセットアップをした際に「ネットワークに接続しましょう」という画面が出たが、セットアップ画面上で一切ネットワークの設定が変更できないということがあったから。
なお、セットアップ画面でShift+F10キーを押すとコマンドプロンプトを表示できる。参考にどうぞ。