前言
之前一直背着笔记本在公司和家里来回跑,公司和家里获取 IP 地址的方式还不一样,公司是固定 IP,家里是动态获取,所以导致每次到家或者公司都要手动更改 IP 地址,很麻烦,所以简单写了个脚本方便的更改 IP 地址。
netsh命令
修改 IP 地址仍然要使用到上一篇文章中所说的 netsh
命令,只不过这次使用的是它的另一个子命令:netsh interface ip set address
。
先来看帮助:
D:360download>netsh interface ip set address
一个或多个重要的参数没有输入。
请验证需要的参数,然后再次输入。
此命令提供的语法不正确。请查看帮助以获取正确的语法信息。
用法: set address [name=]<字符串>
[[source=]dhcp|static]
[[address=]<IPv4 地址>[/<整数>] [[mask=]<IPv4 掩码>]
[[gateway=]<IPv4 地址>|none [gwmetric=]<整数>]
[[type=]unicast|anycast]
[[subinterface=]<字符串>]
[[store=]active|persistent]
参数:
标记 值
name - 接口名称或索引。
source - 下列值之一:
dhcp: 启用 DHCP,以便为指定的接口
配置 IP 地址。
static: 禁用 DHCP,以便为指定的接口
配置 IP 地址。如果配置了
地址或网关,则必须指定
该值。
address - 要添加或修改的 IPv4 地址,
后边也可以加上子网前缀长度。
mask - 指定的 IP 地址的 IP 子网掩码。
gateway - 下列值之一:
<IPv4 address>: 正在设置的静态 IP 地址的
特定默认网关。
none: 未设置任何默认网关。此为默认值。
gwmetric - 默认网关的跃点数。仅在指定了网关时
才应设置该字段。
type - 下列值之一:
unicast: 将地址标记为单播地址。
此为默认值。
anycast: 将地址标记为任意广播地址。
subinterface - 默认网关存在于其上的子接口的 LUID。
此参数仅用于带有
多个子接口的接口。
store - 下列值之一:
active: 设置仅持续到下一次启动。
persistent: 设置永久有效。此为默认值。
备注: 用来启用或禁用 IP 地址配置的 DHCP。
同时删除所有以前的静态 IP 地址和默认网关,
并可以添加新的静态 IP 地址和默认网关。
示例:
set address name="Wired Ethernet Connection" source=dhcp
set address "Wired Ethernet Connection" static 10.0.0.9 255.0.0.0 10.0.0.1 1
帮助中已经解释的很清楚了,而且还有示例,写一个脚本很轻松。
将 IP 地址修改为自动获取:
netsh interface ip set address name="以太网" source=dhcp
netsh interface ip set dns name="以太网" source=dhcp
pause
将 IP 地址设置为固定 IP:
netsh interface ip set address "以太网" source=static addr=172.16.10.16 mask=255.255.255.0 gateway=172.16.10.254
netsh interface ip set dns "以太网" source=static address=114.114.114.114 validate=no
pause
将上面的两个脚本分别保存为 workbat 和 home.bat 就可以了,上班时直接双击 work.bat 即可将 IP 地址修改为固定 IP,回家时双击 home.bat 即可将 IP 地址修改回自动获取状态。添加 pause 命令是为了方便的查看命令是否执行成功,执行成功后按任意键即可退出脚本。
通过命令行修改 IP 地址需要用到管理员权限,记得右键使用管理员运行
总结
Windows 下的命令还是比较全的,但是因为绝大多数时候我们都是使用图形化界面进行 IP 地址的设置和修改,所以一般不会使用到命令行修改 IP 地址,导致这些命令知道的人相对比较少。
不过这也正常,相比于 Windows,Linux 的命令就比较常用和好用了,因为绝大多数的 Linux 都是命令行界面,只能通过命令来修改 IP 地址。