Board logo

标题: [系统相关] 【已解决】求助写个可以定时换内网DNS的bat [打印本页]

作者: cmd11011    时间: 2015-8-24 08:29     标题: 【已解决】求助写个可以定时换内网DNS的bat

由于工作要求要每隔35分钟换一次内网网段(DNS),而且一个人负责多台电脑的更好工作,实在亚历山大,求万能的bat来搞定它。

要求:win7 xp 下定时 修改本地连接 的 网关地址和备用DNS地址。

例如第一次的
网关:192.168.1.1
首选DNS:192.168.1.1

间隔35分钟之后
网关改为:192.168.4.1
首选DNS改为:192.168.4.1

间隔35分钟之后
网关改为:192.168.5.1
首选DNS改为:192.168.5.1

间隔35分钟之后
网关改为:192.168.7.1
首选DNS改为:192.168.7.1

间隔35分钟之后
网关改为:192.168.8.1
首选DNS改为:192.168.8.1


间隔35分钟之后
网关改为:192.168.9.1
首选DNS改为:192.168.9.1


间隔35分钟之后
网关改为:192.168.10.1
首选DNS改为:192.168.10.1


间隔35分钟之后
网关改为:192.168.13.1
首选DNS改为:192.168.13.1


间隔35分钟之后
网关改为:192.168.14.1
首选DNS改为:192.168.14.1

间隔35分钟之后
网关改为:192.168.15.1
首选DNS改为:192.168.15.1


依次类推,每隔35分钟就换一次,让他按顺序循环换。
作者: flyinnet9    时间: 2015-8-24 11:09

本帖最后由 flyinnet9 于 2015-8-24 14:47 编辑

自己加到计划任务里
自己写一个IP.txt放你的网关IP,一行一个
代码里有些地方需要改:
第5行的ip.txt最好加绝对路径
第7、17、18、25、26行的汉字部分,自己改
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. if not exist %temp%\_tmp echo 0 >%temp%\_tmp
  4. for /f "delims=" %%a in (%temp%\_tmp) do set m=%%a
  5. for /f "delims=" %%a in ('more +%m% ip.txt') do if not defined gw set gw=%%a
  6. set /a m=m+1
  7. if %m% lss IP数量 (echo !m! >%temp%\_tmp) else echo 0 >%temp%\_tmp
  8. ver |find "5.1" && goto xp
  9. ver |find "6.1" && gotp win7
  10. echo 非winxp或win7系统,按任意键退出&pause>nul&exit /b
  11. :xp
  12. chcp 437 & rem 英文系统删这一行
  13. for /f "tokens=14 delims= " %%a in ('ipconfig ^|find /i "IP Address"') do set ip=%%a
  14. chcp 936 & rem 英文系统删这一行
  15. netsh interface ip set address "你的本地连接名称,例如:本地连接" source=static address=%ip% mask=255.255.255.0 gateway=%gw% gwmetric=1
  16. netsh interface ip set dns "你的本地连接名称,例如:本地连接" static %gw% primary
  17. exit /b
  18. :win7
  19. chcp 437  & rem 英文系统删这一行
  20. for /f "tokens=14 delims= " %%a in ('ipconfig ^|find /i "IPv4 Address"') do set ip=%%a
  21. chcp 936 & rem 英文系统删这一行
  22. netsh interface ipv4 set address "你的本地连接名称,例如:本地连接" source=static address=%ip% mask=255.255.255.0 gateway=%gw% gwmetric=1
  23. netsh interface ipv4 set dns "你的本地连接名称,例如:本地连接" static %gw% primary
复制代码

作者: cmd11011    时间: 2015-8-25 09:25

回复 2# flyinnet9


    多谢了,去测试!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2