![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 11:58 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【原创】:网关自动切换器。 |
| 可打印版本 1,640 / 3 |
| 第1楼 newaifi | 发表于 2007-02-16 02:27 |
| 初级用户 发帖 67 积分 154 | |
|
【原创】:网关自动切换器。 看论坛里很多朋友在找这个东西,前段时间我要用的时候也找不到.所以就写了这个.还有很多漏洞修要改进,不过基本上是能用了.现在给那些需要的朋友发出来吧.
****************** 代码段 ******************** @Title IP网关自动切换器 By 韩和&Color 0a&&Mode CON Cols=45 Lines=15 &&Echo OFF If Exist config.ini Del config.ini @Echo 程序执行完毕该文件会被自动删除!>config.ini&Ipconfig|Find "IP Address">>config.ini&&Ipconfig|Find "Default Gateway" >>config.ini&&Ipconfig/all|Find "Ethernet adapter">>config.ini ::::::::::::::::: 定义详细的变量 ::::::::::::::::: Set First=192.168 Set Scend1=1 Set Scend2=0 Set Mask=255.255.255.0 Set Gate1=192.168.1.200 Set Gate2=192.168.0.200 ::::::::::::::::: 获取本机的IP地址信息 ::::::::::::::::: For /f "SkIp=2 Tokens=13" %%d in (config.ini) do Set Gate=%%d For /f "SkIp=1 Tokens=15" %%c in (config.ini) do Set Ip=%%c For /f "SkIp=3 Tokens=3,4 Delims=: " %%a in (config.ini) do Set Name=%%a %%b @Echo %Ip% >>config.ini For /f "SkIp=4 Tokens=4 Delims=./ " %%f in (config.ini) do Set Shree=%%f @Echo ⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙ @Echo ⊙你机器当前网络信息如下: ⊙ @Echo ⊙连接名称: %Name% ⊙ @Echo ⊙使用的IP: %Ip% ⊙ @Echo ⊙使用的网关: %Gate% ⊙ @Echo ⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙ ::::::::::::::::: 判断本机所在的网段 ::::::::::::::::: IF /i "%Gate%"=="192.168.1.200" (Goto A_INTERNAME) Else (IF /i "%Gate%"=="192.168.0.200" (Goto B_INTERNAME)) ::::::::::::::::: 1 网段的处理 ::::::::::::::::: :A_INTERNAME @Echo. @Echo 正在进行处理,请耐心等候... Netsh interface Ip Set address "%Name%" static %First%.%Scend2%.%Shree% %Mask% %Gate2% 1 @Cls @Echo 您的网关已经切换成功.当前网关(0). For /f "SkIp=7 Tokens=15" %%k in ('Ipconfig') do Echo 你修改后的网络信息如下: %%k For /f "SkIp=9 Tokens=13" %%g in ('Ipconfig') do Echo 你修改后的网络信息如下: %%g Del config.ini @Echo. @Echo 线路已经成功切换,按任意键退出程序. @pause>nul @exit ::::::::::::::::: 0 网段的处理 ::::::::::::::::: :B_INTERNAME @Echo 正在进行处理,请耐心等候... Netsh interface Ip Set address "%Name%" static %First%.%Scend1%.%Shree% %Mask% %Gate1% 1 @Cls @Echo 您的网关已经切换成功.当前网关(1). For /f "SkIp=7 Tokens=15" %%k in ('Ipconfig') do Echo 你修改后的网络信息如下: %%k For /f "SkIp=9 Tokens=13" %%g in ('Ipconfig') do Echo 你修改后的网络信息如下: %%g Del config.ini @Echo. @Echo 线路已经成功切换,按任意键退出程序. @pause>nul @exit ********************* 结束 ********************* 代码 没有加密,有需要的朋友可以自己改下.我这个写出来只是为了我自己方便. 没有考虑大众使用的方便.. 以后有机会再改进吧.. [ Last edited by newaifi on 2007-2-16 at 10:50 PM ] |
|
| 第2楼 windows9x | 发表于 2007-02-16 06:15 |
| 初级用户 发帖 10 积分 24 | |
|
不知道这么长一段代码有啥用。。。试用了一下,只知道切换192.168这样的网关,假如是别的网关,根本就不会切换,这也叫自动?还不如手动更改来得方便。
|
|
| 第3楼 newaifi | 发表于 2007-02-16 22:56 |
| 初级用户 发帖 67 积分 154 | |
|
本人已经说过了。写这个只是为了自己使用方便。并没有考虑大众的需求,有需要的可以拿去改。
至于为什么只能改 192.168 段.我想有点常识的都应该明白.有些东西想实现完全自动根本就没可能. 就算能识别你的IP.程序也未必知道你想改那个网段.也不可能知道你存在几个网段.所以这个东西我在上面就用 ::::::: 符号进行了申明是变量,需要用户自己去改.坐享其成的话你什么都学不到.. |
|
| 第4楼 voiL | 发表于 2007-02-24 16:51 |
| 中级用户 发帖 189 积分 384 | |
Originally posted by windows9x at 2007-2-16 06:15: 这个可以先取得当前的网段...保存... 然后再换网段... 最后需要恢复的时候再取出之前保存的网段还原不就OK了... |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |