当前位置: 首页 > article >正文

为解决局域网IP、DNS切换的Windows BAT脚本

一、背景

为解决公司普通人员需要切换IP、DNS的情况,于是搞了个windows下的bat脚本,可以对有线网络、无线网络进行切换设置。

脚本内容

@echo off
title 多网络接口IP切换工具

:menu
cls
echo ============================
echo 请选择要配置的网络接口:
echo ============================
echo 1. 有线网络(以太网)
echo 2. 无线网络(Wi-Fi)
echo 3. 刷新DNS缓存
echo 4. 退出
echo ============================
set /p choice=请输入选项(1-3): 

if %choice%==1 goto wiredMenu
if %choice%==2 goto wirelessMenu
if %choice%==3 goto flushDns
if %choice%==4 goto end

:wiredMenu
cls
echo ============================
echo 选择有线网络的IP配置:
echo ============================
echo 1. 使用DHCP自动获取所有设置
echo 2. 使用DHCP自动获取IP地址 (固定DNS)
echo 3. IP配置 1 (192.168.66.101)
echo 4. IP配置 2 (192.168.1.101)
echo 5. 返回主菜单
echo ============================
set /p wiredChoice=请输入选项(1-5): 

if %wiredChoice%==1 goto wiredDhcp
if %wiredChoice%==2 goto wiredDhcpFixedDns
if %wiredChoice%==3 goto wiredIp1
if %wiredChoice%==4 goto wiredIp2
if %wiredChoice%==5 goto menu

:wiredDhcp
echo 正在设置有线网络使用DHCP自动获取IP地址和DNS...
call :applyDhcp "以太网"
goto checkConfigEthernet

:wiredDhcpFixedDns
echo 正在设置有线网络使用DHCP自动获取IP地址,但使用固定DNS...
call :applyDhcpWithFixedDns "以太网" "202.101.202.68" "202.101.224.69"
goto checkConfigEthernet

:wiredIp1
echo 应用有线网络IP配置 1...
call :applyIp "以太网" "192.168.66.101" "255.255.255.0" "192.168.66.1" "202.101.202.68" "202.101.224.69"
goto checkConfigEthernet

:wiredIp2
echo 应用有线网络IP配置 2...
call :applyIp "以太网" "192.168.1.101" "255.255.255.0" "192.168.1.1" "202.101.202.68" "202.101.224.69"
goto checkConfigEthernet

:wirelessMenu
cls
echo ============================
echo 选择无线网络的IP配置:
echo ============================
echo 1. 使用DHCP自动获取所有设置
echo 2. 使用DHCP自动获取IP地址 (固定DNS)
echo 3. IP配置 1 (192.168.1.102)
echo 4. IP配置 2 (192.168.1.103)
echo 5. 返回主菜单
echo ============================
set /p wirelessChoice=请输入选项(1-5): 

if %wirelessChoice%==1 goto wirelessDhcp
if %wirelessChoice%==2 goto wirelessDhcpFixedDns
if %wirelessChoice%==3 goto wirelessIp1
if %wirelessChoice%==4 goto wirelessIp2
if %wirelessChoice%==5 goto menu

:wirelessDhcp
echo 正在设置无线网络使用DHCP自动获取IP地址和DNS...
call :applyDhcp "WLAN"
goto checkConfigWifi

:wirelessDhcpFixedDns
echo 正在设置无线网络使用DHCP自动获取IP地址,但使用固定DNS...
call :applyDhcpWithFixedDns "WLAN" "202.101.202.68" "202.101.224.69"
goto checkConfigWifi

:wirelessIp1
echo 应用无线网络IP配置 1...
call :applyIp "WLAN" "192.168.1.102" "255.255.255.0" "192.168.1.1" "202.101.202.68" "202.101.224.69"
goto checkConfigWifi

:wirelessIp2
echo 应用无线网络IP配置 2...
call :applyIp "WLAN" "192.168.1.103" "255.255.255.0" "192.168.1.1" "202.101.202.68" "202.101.224.69"
goto checkConfigWifi

:applyDhcp
set INTERFACE_NAME=%1
netsh interface ipv4 set address name=%INTERFACE_NAME% source=dhcp
netsh interface ipv4 set dns name=%INTERFACE_NAME% source=dhcp
echo DHCP已启用.
goto :eof

:applyDhcpWithFixedDns
set INTERFACE_NAME=%1
set FIXED_DNS=%2
set SECONDARY_DNS=202.101.202.68
netsh interface ipv4 set address name=%INTERFACE_NAME% source=dhcp
netsh interface ipv4 set dns name=%INTERFACE_NAME% static %FIXED_DNS%
netsh interface ipv4 add dns name=%INTERFACE_NAME% %SECONDARY_DNS% index=2
echo DHCP已启用,并设置了固定的DNS服务器.
goto :eof

:applyIp
set INTERFACE_NAME=%1
set NEW_IP=%2
set SUBNET_MASK=%3
set DEFAULT_GATEWAY=%4
set DNS_SERVER=%5

netsh interface ipv4 set address name=%INTERFACE_NAME% static %NEW_IP% %SUBNET_MASK% %DEFAULT_GATEWAY%
netsh interface ipv4 set dns name=%INTERFACE_NAME% static %DNS_SERVER%
netsh interface ipv4 add dns name=%INTERFACE_NAME% 202.101.202.68 index=2
echo IP配置已更新.
goto :eof

:checkConfigEthernet
echo 显示当前有线网络配置...
netsh interface ip show config name="以太网"
pause
goto menu

:checkConfigWifi
echo 显示当前无线网络配置...
netsh interface ip show config name="WLAN"
pause
goto menu

:flushDns
echo 正在刷新DNS缓存...
ipconfig /flushdns
echo DNS缓存已刷新。
pause
goto menu

:end
echo 程序结束。
pause
exit

请用管理员运行的cmd输入netsh interface ipv4 show interfaces
查看接口与脚本中的接口名称是否一致
在这里插入图片描述

三、自定义脚本

请自行用记事本、notpad++、EmEditor、cudatex对bat脚本进行修改
有线修改位置if %wiredChoice%==
在这里插入图片描述
无线网络修改位置if %wirelessChoice%==

在这里插入图片描述

四、使用

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/573240.html

相关文章:

  • Hive-03之传参、常用函数、explode、lateral view、行专列、列转行、UDF
  • 【Stable Diffusion】SD迎来动画革命,AnimateDiff快速出图
  • Linux的系统ip管理
  • maven高级-01.分模块设计与开发
  • C 语 言 --- 猜 数 字 游 戏
  • 数据挖掘校招面经二
  • HarmonyOS 中 Navigation 组件的应用困境与应对策略
  • Checkpoint 模型与Stable Diffusion XL(SDXL)模型的区别
  • 使用 Deepseek + kimi 快速生成PPT
  • 盛铂科技SCP4000射频微波功率计与SPP5000系列脉冲峰值 USB功率计 区别
  • SPL 和 SQL 能不能融合在一起?
  • 低空经济中,软件服务业 和 物联网(IoT) 的融合尝试
  • 与中国联通技术共建:通过obdiag分析OceanBase DDL中的报错场景
  • C语言:51单片机 结构体系(带最小系统设计图)
  • Ubuntu 上设置 iptables 规则开机自启
  • 【大模型基础_毛玉仁】1.1 基于统计方法的语言模型
  • Gradle 配置 Lombok 项目并发布到私有 Maven 仓库的完整指南
  • 备忘录模式(Memento Pattern)
  • 读写分离架构下的一致性挑战
  • Unity3D主程入职90天工作计划