【Windows】一键自动设置IP及DNS的批处理脚本

您所在的位置:网站首页 怎么修改dns为自动启动 【Windows】一键自动设置IP及DNS的批处理脚本

【Windows】一键自动设置IP及DNS的批处理脚本

2024-07-01 06:13| 来源: 网络整理| 查看: 265

Overview

本批处理脚本适用于Windows自动更改本地连接/以太网等的IP和DNS设置 可以很方便地用于同一计算机在不同网络下(如公司、学校、家里等)切换IP 具体IP及DNS设置可在bat文件中自行预设 代码的主体部分主要参考了[1],并在此基础上进行了修改和优化

Batch File ::Author:Tony Chang ::2015.12.20 ::Thanks D-小苏 ::Mender:Alex Pan ::2018.08.26 @echo off ::preset IP set Net_IP_Diy=172.16.38.20 set Net_MASK=255.255.255.0 set Net_gateway=172.16.38.1 ::preset DNS set Net_dnsPra=61.128.192.68 set Net_dnsOrder=61.128.192.97 title 一键切换IP地址及DNS :: BatchGotAdmin :------------------------------------- REM --> Check for permissions >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" REM --> If error flag set, we do not have admin. if '%errorlevel%' NEQ '0' ( echo Requesting administrative privileges... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) pushd "%CD%" CD /D "%~dp0" :-------------------------------------- :start echo. echo. echo *********************快速修改本地IP地址********************* :Set_localTemp setlocal enabledelayedexpansion :Set_NetConnectionID rem 获取设置网络连接名称 echo. echo **********************选择网络连接名称********************** echo. set "str=DefaultIPGateway^,IPAddress^,DNSServerSearchOrder^,IPSubnet^,DHCPEnabled" for /f "skip=1tokens=1*" %%i in ('wmic Nic where "Manufacturer'Microsoft' and NetConnectionStatus='2'" get Index^,NetConnectionID^') do ( for /f "tokens=1* delims=:" %%j in ("%%j") do ( set $%%i=%%j echo. echo 适配器_名_NName: %%j set "NetConnectionName=%%j" for /f "tokens=1-3delims={}," %%a in ('wmic Nicconfig where "Index='%%i'" get %str% /value') do ( for /f %%c in (%%c) do if /i "%%a" == "DNSServerSearchOrder=" set "DNS2=%%c" for /f %%c in ("%%a%%~b") do set "%%c" ) if /i "!DHCPEnabled!" == "TRUE" ( echo 适配器_IP_模式 : 自动 ) else echo 适配器_IP_模式 : 手动 IF not defined Net_IP set Net_IP=!IPAddress! echo 适配器_IP_地址 : !IPAddress! 预置_IP_地址 : !Net_IP_Diy! IF not defined Net_MASK set Net_MASK=!IPSubnet! echo 适配器_子网掩码: !IPSubnet! 预置_子网掩码: !Net_MASK! IF not defined Net_gateway set Net_gateway=!DefaultIPGateway! echo 适配器_默认网关: !DefaultIPGateway! 预置_默认网关: !Net_gateway! IF not defined Net_dnsPra set Net_dnsPra=!DNSServerSearchOrder! echo 适配器_首选_DNS: !DNSServerSearchOrder! 预置_首选_DNS: !Net_dnsPra! IF defined dns2 set Net_dns2=!DNS2! &echo 适配器_备用_DNS :!DNS2! 预置_备用_DNS: !Net_dns2! ) ) echo. echo. echo ============请输入数字选择下一步操作:============ echo ============1:设置IP为%Net_IP_Diy% ============= echo ============2:设置IP为DHCP自动获取 ============= echo ============3:设置DNS为预置dns ============= echo ============4:设置DNS为自动获取 ============= echo ============ 按Q直接退出 ============= set /P var=":" if %var%==1 goto ipstatic if %var%==2 goto ipdhcp if %var%==3 goto dnsstatic if %var%==4 goto dnsdhcp if %var%==q exit echo 错误:非法输入! goto start :ipstatic echo %NetConnectionName% echo 设置IP... netsh interface ipv4 set address name=%NetConnectionName% source=static %Net_IP_Diy% %net_MASK% %Net_gateway% ipconfig /flushdns echo **IP设置为%Net_IP_Diy%,子网掩码设置为%net_MASK%,默认网关设置为%Net_gateway%,设置成功** echo ------------------------------------------ goto start :ipdhcp netsh interface ip set address name=%NetConnectionName% source=dhcp ipconfig /flushdns echo **IP设置为DHCP获取,设置成功** echo ------------------------------------------ goto start :dnsstatic echo 设置DNS... netsh interface ipv4 set dns name=%NetConnectionName% static addr=%Net_dnsPra% register=PRIMARY netsh interface ipv4 add dns name=%NetConnectionName% addr=%Net_dnsOrder% index=2 ipconfig /flushdns echo **首选DNS设置为%Net_dnsPra%,备用DNS设置为%Net_dnsOrder%,设置成功** echo ------------------------------------------ goto start :dnsdhcp echo 清除DNS... netsh interface ip delete dns %NetConnectionName% all ipconfig /flushdns echo **DNS设置为自动获取,设置成功** echo ------------------------------------------ goto start

修改预设IP&DNS后,保存为.bat文件即可使用,根据提示进行操作

希望能够对大家有所帮助~

Reference

[1] 一个一键修改IP设置的BAT脚本——Safe_Point



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3