带着笔记本有时候在固定的地方工作,需要用到同一个的Ip地址。换个地方换个Ip,又要重新输一遍。
开始感觉这个过程很繁琐,因为是window工作环境,一开始想到了vbs脚本。
无意中发现了强大的netsh命令。。。。
下面分两个部分,先介绍netsh的基本用法,然后贴段vbs脚本实现自动配置IP地址功能。
netsh常见用法
- 查看网络配置 netsh interface ip show {选项}
- 配置接口IP/网关IP netsh interface ip set address "本地连接" static ip地址 子网掩码 网关
- 配置自动换取IP地址 DNS地址及 wins地址
netsh interface ip set address "本地连接" dhcp
netsh interface ip set dns "本地连接" dhcp
netsh interface ip set wins "本地连接" dhcp
- 配置静态IP地址 DNS地址 及 wins地址
netsh interface ip set address "本地连接" static ip地址
netsh interface ip set dns "本地连接" static 子网掩码
netsh interface ip set wins "本地连接" static 网关
- 查看网络配置文件 netsh -c interface dump 使用管道 > 可导出为网络配置文件
- 导入网络配置文件 netsh -f 文件位置 或者 netsh exec 文件位置
vbs实现配置脚本
strIP = "10.37.7.228"
strMask = "255.255.255.0"
strGW = "10.37.7.254"
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array(strIP)
strSubnetMask = Array(strMask)
strGateway = Array(strGW)
strGatewayMetric = Array(1)
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "IP地址已更改。"
Else
WScript.Echo "更改IP地址失败。"
End If
Next