非常实用的原创小工具:EasyIP (利用批处理切换ip)
转自:http://blog.sina.com.cn/s/blog_46dac66f010008aa.html
【性质】批处理程序
【适用】懂一点bat,喜欢小巧和命令行,常要切换IP
【作者】LiLe
【主页】暂无,呵呵,就到这里来找更新吧(如果需要更新的话)
【文献】快速切换ip没必要用工具
【提示】高级用户可以据此修改,精简掉很多内容;命令行支持参数,因此我的习惯是"ip bj" "ip 0"而不是进入后再选菜单。
源代码如下(请将之保存为EasyIP.bat)
[bash]@echo off
title EasyIP v1.3
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: EasyIP v1.3
:: 作者:LiLe
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::系统设置信息::::::::::::::::::::::::::::::::::
@rem
菜单内容设置:========================================================
set menu1=油服(Cosl)
set menu2=总公司1004
set menu3=西部公司
set menu4=阳光(Sun)
set menu5=备用
set menu6=备用
@rem
设置需要使用的代理服务器地址===========================================
set ProxyServerValue=10.68.200.233:8080
@rem
无需使用代理服务器的地址,注意:",<local>"表示激活无需使用的地址,一定要保留
set
ProxyOverrideValue="10.*,<local>"
@rem
这里设置第1个IP的信息==================================================
set MyIP1=10.56.100.143
set MyGateWay1=10.56.100.254
set MyMask1=255.255.255.0
set DNS11=10.68.100.211
set DNS21=10.68.100.212
@rem
这里设置第2个IP的信息==================================================
set MyIP2=10.68.68.85
set MyGateWay2=10.68.68.254
set MyMask2=255.255.255.0
set DNS12=10.68.100.211
set DNS22=10.68.100.212
@rem
这里设置第3个IP的信息==================================================
set MyIP3=10.170.97.72
set MyGateWay3=10.170.97.254
set MyMask3=255.255.255.0
set DNS13=85.255.116.56
set DNS23=85.255.112.146
@rem
这里设置第4个IP的信息==================================================
set MyIP4=192.168.0.199
set MyGateWay4=192.168.0.125
set MyMask4=255.255.255.0
set DNS14=211.147.6.3
set DNS24=202.98.96.68
@rem
这里设置第5个IP的信息==================================================
set MyIP5=
set MyGateWay5=
set MyMask5=
set DNS15=
set DNS25=
@rem
这里设置第6个IP的信息==================================================
set MyIP6=
set MyGateWay6=
set MyMask6=
set DNS16=
set DNS26=
@rem
设置需要更改的网络连接名称=============================================
:: IF EXIST
"%ALLUSERSPROFILE%"\DESKTOP\ set
NetConf="Local Area
Connection"
:: IF EXIST
"%ALLUSERSPROFILE%"\桌面\ set
NetConf="本地连接"
set NetConf="local"
@rem
设置需要测试的IP地址===================================================
set TestIP="10.68.68.254"
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if
"%1%"=="1"
goto IP_1
if
"%1%"=="bj"
goto IP_2
if
"%1%"=="3"
goto IP_3
if
"%1%"=="4"
goto IP_4
if
"%1%"=="5"
goto IP_5
if
"%1%"=="6"
goto IP_6
if
"%1%"=="H"
goto IP_H_nomenu
if
"%1%"=="h"
goto IP_H_nomenu
if
"%1%"=="S"
goto IP_S
if
"%1%"=="s"
goto IP_S
if
"%1%"=="P"
goto IP_P
if
"%1%"=="p"
goto IP_P
if
"%1%"=="N"
goto IP_N
if
"%1%"=="n"
goto IP_N
if
"%1%"=="T"
goto IP_T_nomenu
if
"%1%"=="t"
goto IP_T_nomenu
if
"%1%"=="0"
goto IP_0
GOTO Menu
@rem
==============================================================================
:Menu
echo.
echo.
echo EasyIP v1.3
echo.
echo ==================================
echo 1: %menu1%
echo 2: %menu2%
echo 3: %menu3%
echo 4: %menu4%
echo 5: %menu5%
echo 6: %menu6%
echo ----------------------------
echo P: 使用IE代理服务器
echo N: 不使用IE代理服务器
echo ----------------------------
echo H: 帮助
echo S: 设置说明
echo T: 测试网络
echo 0: 自动获得IP
echo ----------------------------
echo Q: 退出
echo ==================================
set /p input= 请输入选择的代码[eg:1,H...]:
if
"%input%"=="0"
goto IP_0
if
"%input%"=="1"
goto IP_1
if
"%input%"=="2"
goto IP_2
if
"%input%"=="3"
goto IP_3
if
"%input%"=="4"
goto IP_4
if
"%input%"=="5"
goto IP_5
if
"%input%"=="6"
goto IP_6
if
"%input%"=="H"
goto IP_H
if
"%input%"=="h"
goto IP_H
if
"%input%"=="S"
goto IP_S
if
"%input%"=="s"
goto IP_S
if
"%input%"=="P"
goto IP_P
if
"%input%"=="p"
goto IP_P
if
"%input%"=="N"
goto IP_N
if
"%input%"=="n"
goto IP_N
if
"%input%"=="T"
goto IP_T
if
"%input%"=="t"
goto IP_T
if
"%input%"=="Q"
exit
if
"%input%"=="q"
exit
cls
goto Menu
@rem
==============================================================================
:IP_1
set MyIP=%MyIP1%
set MyGateWay=%MyGateWay1%
set MyMask=%MyMask1%
set DNS1=%DNS11%
set DNS2=%DNS21%
goto end
@rem
==============================================================================
:IP_2
set MyIP=%MyIP2%
set MyGateWay=%MyGateWay2%
set MyMask=%MyMask2%
set DNS1=%DNS12%
set DNS2=%DNS22%
goto end
@rem
==============================================================================
:IP_3
set MyIP=%MyIP3%
set MyGateWay=%MyGateWay3%
set MyMask=%MyMask3%
set DNS1=%DNS13%
set DNS2=%DNS23%
goto end
@rem
==============================================================================
:IP_4
set MyIP=%MyIP4%
set MyGateWay=%MyGateWay4%
set MyMask=%MyMask4%
set DNS1=%DNS14%
set DNS2=%DNS24%
goto end
@rem
==============================================================================
:IP_5
set MyIP=%MyIP5%
set MyGateWay=%MyGateWay5%
set MyMask=%MyMask5%
set DNS1=%DNS15%
set DNS2=%DNS25%
goto end
@rem
==============================================================================
:IP_6
set MyIP=%MyIP6%
set MyGateWay=%MyGateWay6%
set MyMask=%MyMask6%
set DNS1=%DNS16%
set DNS2=%DNS26%
goto end
@rem
==============================================================================
:IP_H
cls
echo
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo EasyIP v1.3
echo 作者:LiLe
echo.
echo 编写说明:
echo 网上有很多IP修改工具,但是要么需要安装,要么好几个文件,很不方便。
echo 根据实际需要,编写了本程序,仅仅使用一个几K的批处理即可完成日常需要。
echo.
echo 修改说明:
echo 使用任意文本编辑器,或直接右键选择“编辑”打开。
echo 在“系统设置信息”中,根据注释,设置需要修改的内容即可。
echo 目前提供了IP设置、代理服务器设置、网络测试等功能。
echo 可以根据使用情况自行调整。
echo.
echo 升级历史:
echo V1.3 变动较大,所有参数做成变量,可以统一修改,目前最全面最稳定的版本
echo V1.1 修改了注册表修改方式;增加了命令行参数的支持
echo V1.0 程序基本完成,实现了最基本的IP快速切换功能
echo.
echo
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
pause
cls
goto Menu
@rem
==============================================================================
:IP_H_nomenu
cls
echo
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo EasyIP v1.3
echo 作者:LiLe
echo.
echo 编写说明:
echo 网上有很多IP修改工具,但是要么需要安装,要么好几个文件,很不方便。
echo 根据实际需要,编写了本程序,仅仅使用一个几K的批处理即可完成日常需要。
echo.
echo 修改说明:
echo 使用任意文本编辑器,或直接右键选择“编辑”打开。
echo 在“系统设置信息”中,根据注释,设置需要修改的内容即可。
echo 目前提供了IP设置、代理服务器设置、网络测试等功能。
echo 可以根据使用情况自行调整。
echo.
echo 升级历史:
echo V1.3 变动较大,所有参数做成变量,可以统一修改
echo V1.1 修改了注册表修改方式;增加了命令行参数的支持;
echo V1.0 程序基本完成,实现了最基本的IP快速切换功能
echo.
echo
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
pause
exit
@rem
==============================================================================
:IP_S
@rem 设置
cls
echo
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo EasyIP v1.3
echo 作者:LiLe
echo.
echo 设置说明:
echo.
echo 右键选择“编辑”或者用任意文本编辑器即可对本程序进行编辑,
echo
所有参数均可在"系统设置信息"中根据说明进行修改。
echo 目前提供的命令行参数有:
echo 1-6: 调用第1-6个IP设置
echo P: 使用IE代理服务器
echo N: 不使用IE代理服务器
echo H: 调用帮助文档
echo S: 调用设置说明文档
echo T: 对指定的IP进行ping测试
echo.
echo
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
pause
cls
goto Menu
@rem
==============================================================================
:IP_P
reg add
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet
Settings" /v ProxyServer /t reg_sz /d
%ProxyServerValue% /f
reg add
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet
Settings" /v ProxyOverride /t reg_sz /d
%ProxyOverrideValue% /f
reg add
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet
Settings" /v ProxyEnable /t reg_dword /d 00000001
/f
exit
@rem
==============================================================================
:IP_N
reg add
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet
Settings" /v ProxyEnable /t reg_dword /d 00000000
/f
exit
@rem
==============================================================================
:IP_T
cls
ping %TestIP%
pause
cls
goto Menu
@rem
==============================================================================
:IP_T_nomenu
cls
ping %TestIP%
pause
exit
@rem
==============================================================================
:IP_0
netsh interface ip set address %NetConf% dhcp
netsh interface ip set dns %NetConf% dhcp
exit
@rem
==============================================================================
:end
netsh interface ip set address name=%NetConf% source=static
addr=%MyIP% mask=%MyMask%
netsh interface ip set address name=%NetConf% gateway=%MyGateWay%
gwmetric=0
netsh interface ip set dns name=%NetConf% source=static addr=%DNS1%
register=PRIMARY
netsh interface ip add dns name=%NetConf% addr=%DNS2%
netsh interface ip set wins name=%NetConf% source=static
addr=none
exit[/bash]
一、起源
EasyIP是一个很偶然的想法,因为工作的原因,每天都需要更改好几次IP地址,手工更改速度慢,而且麻烦。上网找了更改IP的工具,找的工具还算方便,但是并不是很稳定,时不时弹出出错信息,而且程序有好几个文件不说,占用的空间足足有几兆。
想想看,不就是为了切换个IP和IE的代理服务器么,真的需要这么麻烦么?
参考了xbeta老师的“善用佳软”(http://www.xbeta.info)的一篇文章:“快速切换ip没必要用工具”(http://blog.sina.com.cn/u/46dac66f010006gb),我也对常去的几个地方的IP都设置了批处理文件,而且使用了Win+Run的方式来快速使用,非常方便。但是时间长了,问题又来了,过了段时间就有了一堆设置IP的批处理文件,还有设置代理服务器的注册表文件,非常不爽。一次偶然的机会,同事随口问,需要这么多文件啊,要是能合并成一个就方便了!忽然感到的确是个很好的建议,当晚就用批处理写下了第一版。使用批处理的原因也很简单,这么简单的工作,“杀鸡焉用牛刀”?
二、思路
三、特色:
比如将它的路径放在PATH内,则在“运行”中直接输入”EasyIP 参数”就可以直接使用。
四、升级历史:
※初稿200703;出处http://blog.sina.com.cn/u/46dac66f010008aa
※作者xbeta;采用CC创作共用协议,可保留本信息并<署名、非商业和保持一致>转载