V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
leohxj
V2EX  ›  分享创造

PC 下修改 IP,DNS 的批处理工具

  •  
  •   leohxj ·
    leohxj · 2014-06-25 21:44:06 +08:00 · 3032 次点击
    这是一个创建于 3839 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求很简单,因为有时需要切换IP(电信/网通),每次都打开网络设置很麻烦,于是写了个批处理工具。目前存在一个不智能的地方是需要自己配置网路地址的名称(批处理文件的第11行),比如我是windows 8.1中文版的无线连接方式,对应的名称就是"WLAN",这个名称不知道如何通过命令获取。。。请知道的朋友告知下。网络地址可能的名称应该有(分别对应中英文系统):
    - "本地连接"
    - "WLAN"
    - "Wifi"
    - “Local Area Connection"

    批处理文件如下,请复制后用记事本另存为xxx.bat格式,编码类型选择ANSI,运行需要右击选择管理员身份运行。

    ```
    @echo off
    rem mode con cols=30 lines=5
    Color eee
    :head
    cls
    title ::修改IP/DNS程序::
    cls
    set IP=192.168.1.2
    set MASK=255.255.255.0
    set GATEWAY=192.168.1.1
    set NAME="WLAN"
    set DNS1=114.114.114.114
    set DNS2=8.8.8.8
    echo.&echo.
    echo 修改IP/DNS程序:
    echo -----1.设置动态IP
    echo -----2.设置静态IP
    echo -----3.设置自动DNS
    echo -----4.设置静态DNS
    echo -----5.查看当前IP配置
    echo -----0.退出
    echo.
    set /p s= 选择(1,2,3,4,5,0):
    echo %s%|findstr /be "[0-5]*" >nul &&goto:sta||(echo 输入错误,请重新输入&echo.&pause&goto:head)
    echo.&%0
    :sta
    if "%s%"=="1" goto:dynamicIP
    if "%s%"=="2" goto:staticIP
    if "%s%"=="3" goto:dynamicDNS
    if "%s%"=="4" goto:staticDNS
    if "%s%"=="5" goto:review
    if "%s%"=="0" goto:end
    :dynamicIP
    netsh interface ip set address %NAME% source=dhcp
    echo 已设置动态IP
    echo.
    echo.
    pause
    goto:head
    :staticIP
    echo 默认IP地址是%IP%,回车输入默认地址(%IP%)
    set /p IP= [请输入IP地址:]
    echo.
    echo 默认MASK是%MASK%,回车输入默认值(%MASK%)
    set /p MASK= [请输入 子网掩码 地址:]
    echo.
    echo 默认GATEWAY是%GATEWAY%,回车输入默认值(%GATEWAY%)
    set /p GATEWAY= [请输入 网关 地址:]
    echo.
    netsh interface ip set address %NAME% source=static addr=%IP% mask=%MASK% gateway=%GATEWAY%
    echo 已设置静态IP
    echo.
    echo.
    pause
    goto:head
    :dynamicDNS
    netsh interface ip set dns %NAME% source=dhcp
    echo 已设置自动DNS
    echo.
    echo.
    pause
    goto:head
    :staticDNS
    echo 默认首选DNS地址是%DNS1%,回车输入默认地址(%DNS1%)
    set /p DNS1= [请输入首选DNS地址:]
    echo.
    echo 默认备用DNS地址是%DNS2%,回车输入默认地址(%DNS2%)
    set /p DNS2= [请输入备用DNS地址:]
    echo.
    netsh interface ip set dns %NAME% source=static addr=%DNS1% register=PRIMARY
    netsh interface ip add dns %NAME% addr=%DNS2% index=2
    echo 已设置静态DNS
    echo.
    echo.
    pause
    goto:head
    :review
    cls
    ipconfig
    pause
    goto:head
    :end
    exit
    ```

    另外,我也想知道Mac下修改ip的脚本,不妨贴在楼下,方便大家使用。
    谢谢。
    第 1 条附言  ·  2014-06-26 19:32:04 +08:00
    1L推荐的NetSetMan功能很适合,且PC/Mac通用
    3 条回复    2014-06-25 22:43:24 +08:00
    LazyZhu
        1
    LazyZhu  
       2014-06-25 21:45:48 +08:00   ❤️ 1
    用NetSetMan
    leohxj
        3
    leohxj  
    OP
       2014-06-25 22:43:24 +08:00
    @LazyZhu 神软件啊,哈哈哈。省事了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1305 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:53 · PVG 01:53 · LAX 09:53 · JFK 12:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.