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

news2025/3/10 10:49:03

一、背景

为解决公司普通人员需要切换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.coloradmin.cn/o/2311925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VUE3开发-9、axios前后端跨域问题解决方案

VUE前端解决跨域问题 前端页面需要改写 如果无效,记得重启服务器 后端c#解决跨域问题 前端js取值,后端c#跨域_c# js跨域-CSDN博客

【计算机网络】计算机网络的性能指标——时延、时延带宽积、往返时延、信道利用率

计算机网络的性能指标 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中我们介绍了计算机网络的三个性能指标——速率、带宽和吞吐量。用大白话来说就是:网速、最高网速和实时网速。 相信大家看到这三个词应该就…

Kubermetes 部署mysql pod

步骤 1: 创建 PersistentVolume 和 PersistentVolumeClaim 首先为 MySQL 创建一个 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 来确保数据的持久性。 mysql-pv.yaml: apiVersion: v1 kind: PersistentVolume metadata:name: mysql-pv-volume spec:cap…

Docker和DockerCompose基础教程及安装教程

Docker的应用场景 Web 应用的自动化打包和发布。自动化测试和持续集成、发布。在服务型环境中部署和调整数据库或其他的后台应用。从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。 CentOS Docker 安装 使用官方安装脚本自动安装 安装命令…

网络安全等级保护—定级

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 网络安全等级保护五个保护等级 五个保护等级 受侵害的客体 对客体的侵害程度 一般损害 严重损害 特别严重损害 公民、法人和其他组织的合法权益 第一级 第二级 …

macos 程序 运行

sudo xattr -r -d com.apple.quarantine [/Applications/Name]使用stow 管理配置文件

UVC for USBCamera in Android

基于UVC 协议,完成USBCamera 开发 文章目录 一、目的:二、USBCamera 技术实现方案难点 三、误区:四、基础补充、资源参考架构图了解Camera相关专栏零散知识了解部分相机源码参考,学习API使用,梳理流程,偏应…

Docker 安装 Nacos 2.1.1(单机版)

一、拉取镜像 docker pull nacos/nacos-server:v2.1.1 二、新建数据库 官网上下载 对应版本的 nacos zip 包,在 nacos\conf 目录下有 mysql脚本: 新建一个数据库 nacos_config,在数据库中依次执行 nacos-mysql.sql、1.4.0-ipv6_support-up…

网络安全数据富化 网络数据安全处理规范

本文件规定了网络运营者开展网络数据收集、存储、使用、加工、传输、提供、公开等数据处理的安全 技术与管理要求。 本文件适用于网络运营者规范网络数据处理,以及监管部门、第三方评估机构对网络数据处理进行 监督管理和评估。 部分术语和定义 数据(data&#x…

深入理解 C 语言函数的定义

在 C 语言的编程世界里,函数是构建复杂程序的基石。理解函数的定义与运用,对于编写高效、可维护的代码至关重要。​ 函数定义的基本概念​ 函数是一组执行特定任务的代码块。它将一个复杂的问题分解为一个个小的、可管理的部分,提高了代码的…

SQL注入练习场:PHPStudy+SQLI-LABS靶场搭建教程(零基础友好版)

注意:文中涉及演示均为模拟测试,切勿用于真实环境,任何未授权测试都是违法行为! 一、环境准备 下载PHPStudy 官网下载地址:https://www.xp.cn/php-study(选择Windows版) 安装时建议选择自定…

WordPress报502错误问题解决-php-fpm-84.service loaded failed failed LSB: starts php-fpm

文章目录 问题描述问题排查问题解决 问题描述 服务器环境: php:8.4MySQL:8.0Nginx:1.26.2 在访问站点时,一直报502,而两天前还能正常访问。 问题排查 导致502的问题很多,比如站点访问量太大…

uniapp 微信小程序 升级 uniad插件版本号

问题描述: 每次提交代码升级的时候会弹窗提示:uniad插件版本太低… 解决办法 一、使用微信小程序开发工具点击右上角 查看到最新版本:1.3.4 二、在app.json中改为最新的版本即可 "uni-ad": {"version": "1.3.4&q…

使用Dockerfile打包java项目生成镜像部署到Linux_java项目打docker镜像的dockerfile

比起容器、镜像来说,Dockerfile 非常普通,它就是一个纯文本,里面记录了一系列的构建指令,比如选择基础镜像、拷贝文件、运行脚本等等,每个指令都会生成一个 Layer,而 Docker 顺序执行这个文件里的所有步骤&…

使用 Apache POI 实现 Excel 单元格合并

在日常工作中,Excel 是一个不可或缺的工具,尤其是在处理大量数据时。为了提升数据的可读性和美观性,我们经常需要对 Excel 中的单元格进行合并操作。本文将介绍如何使用 Apache POI 库在 Java 中实现 Excel 单元格的合并,并提供一…

低代码开发直聘管理系统

低代码 DeepSeek 组合的方式开发直聘管理系统,兼职是开挂的存在。整个管理后台系统 小程序端接口的输出,只花了两个星期不到。 一、技术栈 后端:SpringBoot mybatis MySQL Redis 前端:Vue elementui 二、整体效果 三、表结…

Android更新时区版本-ianaVersion

代码路径 源码路径system/timezone 目录结构: apex 包含与Android时区更新APEX文件相关的代码,用于在Android设备上更新时区规则。 debug_tools 包含调试Android设备时区问题的工具。 distro 包含与“分发包”(distros)相关…

利用python实现对Excel文件中数据元组的自定义排序

问题引入: 假设你是一个浙江省水果超市的老板,统筹11个下辖地市的水果产量。假设11个地市生产的水果包括:苹果、香蕉和西瓜。你如何快速得到某种水果产量突出(排名前几)的地市?产量落后(排名后…

leetcode 0018 四数之和-medium

1 题目:四数之和 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复&#x…

时序数据库 InfluxDB 3.0 版本性能实测报告:写入吞吐量提升效果验证

亮点总结: TSBS 测试表明,对于少于 100 万台设备的数据集,InfluxDB OSS 3.0 的数据写入速度实际上比 InfluxDB OSS 1.8 更慢。 对于 100 万台及以上设备的数据集,InfluxDB OSS 3.0 的数据写入性能才开始超过 InfluxDB OSS 1.8。…