为解决局域网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%==

在这里插入图片描述

四、使用

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/982786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【OMCI实践】wireshark解析脚本omci.lua文件(独家分享)

引言 omci.lua文件是Wireshark的OMCI协议解析插件的核心组件。它配合BinDecHex.lua,可以解析OMCI协议的数据包,提取出消息类型、受管实体标识、受管实体属性等关键信息,并以人类可读的形式显示在Wireshark的解码视图中,方便研发人…

JPA编程,去重查询ES索引中的字段,对已有数据的去重过滤,而非全部字典数据

一、背景 课程管理界面,查询前,需要把查询元数据给出。 学科列表、学段列表和分类列表,我们把它定义为查询元数据。 一般的业务需求是: 系统维护好多个字典,比如学科、学段等等,相当于属性库。 但是&…

vue3与react、 react hooks

一、Vue3新特性:setup、ref、reactive、computed、watch、watchEffect函数、生命周期钩子、自定义hooks函数、toRef和toRefs、shallowReactive 与 shallowRef、readonly 与 shallowReadonly、toRaw 与 markRaw、customRef、provide 与 inject、Fragment、Teleport、…

LINUX网络基础 [二] - 网络编程套接字,UDP与TCP

目录 前言 一. 端口号的认识 1.1 端口号的作用 二. 初识TCP协议和UDP协议 2.1 TCP协议 TCP的特点 使用场景 2.2 UDP协议 UDP的特点 使用场景 2.3 TCP与UDP的对比 2.4 思考 2.5 总结 三. 网络字节序 3.1 网络字节序的介绍 3.2 网络字节序思考 四. socket接口 …

基于SpringBoot+Vue的校园美食分享平台的设计与实现

获取源码:SpringBootVue的校园美食分享平台: 系统角色上分为管理员以及普通用户进行实现, 管理员主要负责整个网站后台的维护管理,包括首页、学校管理、美食类型管理、餐厅管理、美食分享管理、美食评论管理、系统信息、用户管理、角色管理和…

WPS条件格式:B列的值大于800,并且E列的值大于B列乘以0.4时,这一行的背景标红

一、选择数据区域 选中需要应用条件格式的区域(例如A2:E100 )。 二、打开条件格式 点击“开始”选项卡,选择“条件格式” > “新建规则”。 三、选择规则类型 选择“使用公式确定要设置格式的单元格”。 四、输入公式 在公式框中输入以…

自由学习记录(42)

可能会出现到后面没有教程可以看,走不动,,但还是尝试吧 过程远比想象的要多 那连Live2d的这些脚本怎么控制的都要了解一下 ------------ 文件类型和扩展名 | 编辑手册 | Live2D Manuals & Tutorials 全部导入之后 在这下载SDK Live2D…

结构型模式---享元模式

概念 享元模式是一种结构型设计模式,他摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。享元模式将原始类中的数据分为内在状态数据和外在状态数据。 内在状态:就…

[内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:SAM 文件 & Windows 本地认证流程 0x0101:SAM 文件简介 Windows 本地账户的登录密码是存储在系统本地的 SAM 文件中的,在登录 Windows 的时候&am…

类和对象—多态—案例2—制作饮品

案例描述: 制作饮品的大致流程为:煮水-冲泡-倒入杯中-加入辅料 利用多态技术实现本案例,提供抽象制作产品基类,提供子类制作咖啡和茶叶 思路解析: 1. 定义抽象基类 - 创建 AbstractDrinking 抽象类,该类…

YOLOv12本地部署教程——42%速度提升,让高效目标检测触手可及

YOLOv12 是“你只看一次”(You Only Look Once, YOLO)系列的最新版本,于 2025 年 2 月发布。它引入了注意力机制,提升了检测精度,同时保持了高效的实时性能。在保持速度的同时,显著提升了检测精度。例如&am…

SpringBoot3—场景整合:AOT

一、AOT与JIT AOT:Ahead-of-Time(提前编译):程序执行前,全部被编译成机器码 JIT:Just in Time(即时编译): 程序边编译,边运行; 编译:源代码&am…

*VulnHub-FristiLeaks:1.3暴力解法、细节解法,主打软硬都吃,隧道搭建、寻找exp、提权、只要你想没有做不到的姿势

*VulnHub-FristiLeaks:1.3暴力解法、细节解法,主打软硬都吃,隧道搭建、寻找exp、提权、只要你想没有做不到的姿势 一、信息收集 1、扫靶机ip 经典第一步,扫一下靶机ip arp-scan -l 扫描同网段 nmap -sP 192.168.122.0/242、指纹扫描、端口…

20242817李臻《Linux⾼级编程实践》第二周

一、AI对学习内容的总结 第2章 Linux编程环境总结 1. GCC编译器 GCC(GNU Compiler Collection)是GNU项目的一部分,支持多种编程语言,包括C、C、Java、Fortran、Ada等。编译过程:GCC将源程序转换为可执行程序的过程包…

vue3 组合式API:插槽

一、内容与出口 1、<slot> 元素是一个插槽出口 (slot outlet)&#xff0c;标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。插槽内容可以是任意合法的模板内容&#xff0c;不局限于文本&#xff0c;可以是多个元素&#xff0c;甚至是组件 // 插槽内容可以是…

【音视频】ffplay播放控制

一、ffplay播放控制 1.1、ffplay打开视频 比如我当前目录下现在有一个1.mp4的视频&#xff0c;可以使用下面的命令用ffplay打开并播放它 ffplay 1.mp4输入后回车即可打开相应的视频 1.2 ffplay播放控制 使用q、ESC退出播放按f、双击切换全屏状态按m切换为静音按9减少音量&a…

K8S高可用集群-小白学习之二进制部署(ansible+shell)

一.K8S高可用集群配置概述 序言:本文从一个小白的视角进行K8S的研究和部署,采用二进制的方式是为了更清楚了分解部署流程及了解这个集群是怎么运作的,加上ansible+shell是方便在这个过程中,遇到了问题,我们可以不断的快速重复部署来测试和研究问题的所在点,本文的架构图…

K8S学习之基础十六:k8s中Deployment更新策略

滚动更新 滚动更新是一种自动化程度较高的发布方式、用户体验比较平滑、是目前成熟型技术组织采用的主流发布方式&#xff0c;一次滚动发布一般有若干发布批次组成&#xff0c;每批的数量一般都是可配置的&#xff0c;可通过发布模板定义&#xff0c;例如第一批10%&#xff0c…

dify + ollama + deepseek-r1+ stable-diffusion 构建绘画智能体

故事背景 stable-diffusion 集成进 dify 后&#xff0c;我们搭建一个小智能体&#xff0c;验证下文生图功能 业务流程 #mermaid-svg-6nSwwp69eMizP6bt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6nSwwp69eMiz…

如何使用 LLM 生成的术语自动在搜索应用程序上构建 autocomplete 功能

作者&#xff1a;来自 Elastic Michael Supangkat 了解如何在 Elastic Cloud 中&#xff0c;通过使用 LLM 生成的词汇&#xff0c;为搜索应用增强自动补全功能&#xff0c;实现更智能、更动态的搜索建议。 自动补全是搜索应用中的一项关键功能&#xff0c;它通过在用户输入时实…