1.起因
不知因为什么原因我的电脑在连接wlan时在自动获取的ip地址段是169.254这个微软的私有网段地址,按照正常来说这个网段地址一般是在设置ip冲突的时候才会默认设置的。
结果就导致我无法正确地连接到DNS服务器
无法上网
但是只有在网络适配器里让他自动重新获取一次ip地址,才能正确获取到dhcp服务器对应的ip地址。具体什么原因现在也还未解决,,希望能有大佬能够帮助一下
2.自动设置
虽然通过手动重设ip地址可以重新上网,但是每次连接网之后都要重复这些操作,于是就想着通过写批处理脚本来一键重设ip地址。
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
echo IP自动设置开始...
echo 正在设置IP及子网掩码
cmd /c netsh interface ip set address name="WLAN" source=static addr=192.168.169.1 mask=255.255.255.0 gateway=192.168.169.3 gwmetric=1
echo IP设置完成
echo IP自动设置开始....
echo 自动获取IP地址....
netsh interface ip set address name = "WLAN" source = dhcp
echo 自动获取DNS服务器....
netsh interface ip set dns name = "WLAN" source = dhcp
@rem 设置自动获取IP
echo 设置完成
exit
第一行是获取管理员权限,因为下面在设置ip的时候必须要管理员才行。
3.自动执行命令
但是这样子在连接wlan之后,还需要手动执行脚本,还不够方便,就想着最好能够在每次连接wlan之后都能自动执行这个脚本那就更好了。
想起windows有个“任务计划程序”,于是就可以自己创建个任务
“创建基本任务”
设置名称和描述
选择“当特定事件被记录时”
在windows的“事件查看器”中可以看到,每次连接wlan时就会有如下的事件产生
于是便可以在任务触发器那设置
由上图得日志为”系统“,源为“Netwtw10”,事件ID为7021
执行“启动程序”操作
然后再选择所写脚本即可。
这样在每次连接wlan时,这个脚本就会被自动执行,重新设置ip,我就能够正常上网了