zoukankan      html  css  js  c++  java
  • 非常实用的原创小工具:EasyIP

    转载至:http://blog.sina.com.cn/s/blog_46dac66f010008aa.html
     
    【性质】批处理程序
    【用途】方便在多个ip间切换
    【适用】懂一点bat,喜欢小巧和命令行,常要切换IP
    【作者】LiLe
    【主页】暂无,呵呵,就到这里来找更新吧(如果需要更新的话)
    【文献】快速切换ip没必要用工具
    【提示】高级用户可以据此修改,精简掉很多内容;命令行支持参数,因此我的习惯是"ip bj" "ip 0"而不是进入后再选菜单。
    非常实用的原创小工具:EasyIP
    源代码如下(请将之保存为EasyIP.bat)

    ::最后更新20070405,发布xbeta,作者LiLe
    @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_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyServer /t reg_sz /d %ProxyServerValue% /f
     reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyOverride /t reg_sz /d %ProxyOverrideValue% /f
     reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyEnable /t reg_dword /d 00000001 /f
    exit

    @rem ==============================================================================
    :IP_N
    reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet 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


    说明文件如下

    EasyIP_readme.txt

    About EasyIP

    一、起源
    EasyIP是一个很偶然的想法,因为工作的原因,每天都需要更改好几次IP地址,手工更改速度慢,而且麻烦。上网找了更改IP的工具,找的工具还算方便,但是并不是很稳定,时不时弹出出错信息,而且程序有好几个文件不说,占用的空间足足有几兆。
    想想看,不就是为了切换个IP和IE的代理服务器么,真的需要这么麻烦么?
    参考了xbeta老师的“善用佳软”(http://www.xbeta.info)的一篇文章:“快速切换ip没必要用工具”(http://blog.sina.com.cn/u/46dac66f010006gb),我也对常去的几个地方的IP都设置了批处理文件,而且使用了Win+Run的方式来快速使用,非常方便。但是时间长了,问题又来了,过了段时间就有了一堆设置IP的批处理文件,还有设置代理服务器的注册表文件,非常不爽。一次偶然的机会,同事随口问,需要这么多文件啊,要是能合并成一个就方便了!忽然感到的确是个很好的建议,当晚就用批处理写下了第一版。使用批处理的原因也很简单,这么简单的工作,“杀鸡焉用牛刀”?

    二、思路
     程序很简单,使用netsh命令就可以实现了,增加一些参数就足够了。代理服务器的处理刚开始时使用的是在C盘新建注册表文件,然后调用注册表文件来实现,随着对批处理理解的加深,1.1以后版本直接使用reg,命令来实现,不仅克服了没有C盘时会出错的问题,而且效率更高,代码更简洁。

    三、特色:
     1、小
     整个程序只有一个文件,并且这个文件只有几K!
     2、简单
     所有代码全部公开,直接右键选择“编辑”,根据提示修改相关参数,即可完成对程序的设置!包括菜单内容、网络信息、代理服务器等都可以方便的设置。
     3、加入了命令行参数的调用
    比如将它的路径放在PATH内,则在“运行”中直接输入”EasyIP 参数”就可以直接使用。

    四、升级历史:
         V1.3  变动较大,所有参数做成变量,可以统一修改,目前最全面最稳定的版本
         V1.1  修改了注册表修改方式;增加了命令行参数的支持
         V1.0  程序基本完成,实现了最基本的IP快速切换功能

    ※初稿200703;出处http://blog.sina.com.cn/u/46dac66f010008aa
    ※作者xbeta;采用CC创作共用协议,可保留本信息并<署名、非商业和保持一致>转载

  • 相关阅读:
    JScript运行批处理命令的做法
    java_main
    MySQL 数据库设计 笔记与总结(1)需求分析
    学技术真累
    学习Spring框架等技术的方向、方法和动机
    学习Spring框架等技术的方向、方法和动机
    个人知识管理是职场必修课
    个人知识管理是职场必修课
    提高生产力的2个方法:软件复用和知识库
    提高生产力的2个方法:软件复用和知识库
  • 原文地址:https://www.cnblogs.com/flyingZFX/p/5016169.html
Copyright © 2011-2022 走看看