标题: 【原创】:网关自动切换器。
[打印本页]
作者: newaifi
时间: 2007-2-16 02:27
标题: 【原创】:网关自动切换器。
看论坛里很多朋友在找这个东西,前段时间我要用的时候也找不到.所以就写了这个.还有很多漏洞修要改进,不过基本上是能用了.现在给那些需要的朋友发出来吧.
****************** 代码段 ********************
@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 ]
作者: windows9x
时间: 2007-2-16 06:15
不知道这么长一段代码有啥用。。。试用了一下,只知道切换192.168这样的网关,假如是别的网关,根本就不会切换,这也叫自动?还不如手动更改来得方便。
作者: newaifi
时间: 2007-2-16 22:56
本人已经说过了。写这个只是为了自己使用方便。并没有考虑大众的需求,有需要的可以拿去改。
至于为什么只能改 192.168 段.我想有点常识的都应该明白.有些东西想实现完全自动根本就没可能. 就算能识别你的IP.程序也未必知道你想改那个网段.也不可能知道你存在几个网段.所以这个东西我在上面就用 ::::::: 符号进行了申明是变量,需要用户自己去改.坐享其成的话你什么都学不到..
作者: voiL
时间: 2007-2-24 16:51
Quote: |
Originally posted by windows9x at 2007-2-16 06:15:
不知道这么长一段代码有啥用。。。试用了一下,只知道切换192.168这样的网关,假如是别的网关,根本就不会切换,这也叫自动?还不如手动更改来得方便。 |
|
这个可以先取得当前的网段...保存...
然后再换网段...
最后需要恢复的时候再取出之前保存的网段还原不就OK了...