初衷
笔记本连单位的无线网,但禁止访问腾讯NBA、知乎、微信、B站等常用的网站,所以需要在内网和热点之间切换。内网与热点的不同之处在于IP地址、子网、网关、DNS这几个参数设定了特定值,再配合基本的逻辑汇成一个简单的网络切换小工具。
效果展示
-
连接单位无线网,设置IP和DNS网络参数,切换至单位工作环境
-
连接手机热点、IP和DNS恢复为自动,切换至家庭娱乐环境
适用范围
本代码/本工具,仅适用于windows 10环境,win7等其他系统环境未测试过,请各位自行测试。
Bat代码(change_wifi_env.bat)
本想直接上传我当前在用change_wifi_env.bat的,但csdn博客里暂不支持上传附件,所以只能附上源代码。各位可以新建change_wifi_env.bat,并粘贴下列代码,修改前网络相关的4个变量,运行时务必以管理员权限运行。
@echo off
rem //设置变量
set NAME="WLAN"
set IP_ADDRESS=10.96.15.181
set SUBNET=255.255.255.0
set GATEWAY=10.96.15.254
set DNS1=10.0.34.4
echo 当前可用操作有:
echo 1 设置本地DNS代理(切单位网络环境)
echo 2 恢复动态DNS(切家庭网络环境)
echo 3 退出
echo .
echo 请选择后回车:
set /p operate=
if %operate%==1 goto 1
if %operate%==2 goto 2
if %operate%==3 goto 3
:1
echo .
echo 正在设置本地DNS代理,请稍等...
echo 网络 = %NAME%
echo DNS = %DNS1%
echo .
netsh interface ip set address name=%NAME% static %IP_ADDRESS% %SUBNET% %GATEWAY% 1
netsh interface ip set dns name=%NAME% source=static addr=%DNS1% register=PRIMARY >nul
echo 本地代理已设置!
pause
goto 3
:2
echo .
echo 正在恢复动态DNS,请稍等...
echo 网络 = %NAME%
echo .
netsh interface ip set address name=%NAME% dhcp
netsh interface ip set dns name=%NAME% dhcp
echo 恢复动态DNS设置!
pause
goto 3
:3
exit
被诟病的地方
DNS切换后会提示“配置的DNS服务器不正确或不存在”,但这不影响正常使用,稍微有点不舒服。
最终,将该输出“重定向到黑洞”实现屏蔽(已更新至代码中)。
netsh interface ip set dns name=%NAME% source=static addr=%DNS1% register=PRIMARY >nul