热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序

文章目录前言修改IP地址的批处理命令程序介绍程序特点程序菜单界面程序功能介绍设置为其中一个IP地址一次性添加多个IP地址手动设置IP地址自动获取IP地址显示网卡的IP信息使用说明代

文章目录

  • 前言
  • 修改IP地址的批处理命令
  • 程序介绍
    • 程序特点
      • 程序菜单界面
    • 程序功能介绍
      • 设置为其中一个IP地址
      • 一次性添加多个IP地址
      • 手动设置IP地址
      • 自动获取IP地址
      • 显示网卡的IP信息
  • 使用说明
  • 代码说明
  • WIN10 :CMD批处理的管理员权限问题
  • 后话
前言
  • 日常工作中,我们常接触到具有网络接口的设备,调试它们的时候要用电脑连接,而电脑IP地址与设备IP地址时常不在同一个网段,我们要把电脑的IP地址修改到与设备IP地址的相同网段中。
  • 在连接和调试数个处于不同IP网段的设备的时候,除了修改电脑的IP地址和网关,我们还可以添加多个IP地址和对应的网关地址,如下图:
    《【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序》
    这样操作可使电脑网卡在不修改IP属性的情况下,能够与处于不同网段的设备进行通信,但每次添加或删除IP地址/网关地址的操作都要进入网卡属性的选项中设置,该过程中有很多重复的操作,也会因某次输入错误导致返回此处检查和修改,所以本人想要设计一个程序来提高这部分操作的效率,并减少输入出错的概率。
  • 整体需求描述:略!
    为达到轻量、易读、易修改的目的,在此采用DOS平台脚本,即批处理命令(Batch)。它无需经过编译,并且快速、敏捷、灵活,程序的每一行都是一条批处理命令,可用任何文本编辑工具来修改,程序文件双击即可运行。
    对于一次性待添加的多个IP地址/网关地址,可以将它们直接编写和保存在程序代码中,最终只有单独一个文件被使用和修改。
修改IP地址的批处理命令
  • 普通的批处理修改网卡IP地址,相当于网卡的第0个IP:set address… static…
    netsh interface ip set address 网卡名称 static IP地址 子网掩码 网关地址

netsh interface ip set address 本地连接 static 192.168.1.250 255.255.255.0 192.168.1.254

  • 已经拥有/设置过IP地址等的网卡,继续添加更多的IP地址等:add address…
    netsh interface ip add address 网卡名称 IP地址 子网掩码 网关地址

netsh interface ip add address 本地连接 IP地址 子网掩码 网关地址

  • 设置为DHCP,即自动获取IP地址:
    netsh interface ip set address 网卡名称 source=dhcp

netsh interface ip set address 本地连接 source=dhcp

  • 显示网卡IP相关信息:

ipconfig
- 或
ipconfig /all

  • 显示网卡IPV4相关信息:

for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "IPv4"') do set IPnow=%%i
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "子网掩码"') do set MASKnow=%%i
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "默认网关"') do set GATEnow=%%i
程序介绍

All By JoKKKKKKKKKK,2017.06.17
请在此下载程序文件,或自行复制粘贴完成程序:
GitHub:PC-IP-address-Config
CSDN下载

程序特点

  • 台式机、笔记本、WIn7系统,有线/无线网卡通用
  • 文件占用空间小,无需编译生成,双击能够立即运行;
  • 用系统自带的记事本等编辑器进行编辑,方便修改IP等等相关配置;
  • 有初始菜单界面,并显示电脑的IP地址/子网掩码/网关地址;
  • 在菜单界面中,输入数字即可完成操作;
  • 可以选择不同的IP地址来直接设置;
  • 可以一次性添加多个IP地址/子网掩码/网关地址;
  • 可以手动输入IP地址/子网掩码/网关地址进行设置;
  • 可以自动获取IP地址;
  • 可以查看电脑网卡的信息,相当于在命令行中输入”ipconfig”的功能;
  • 几乎不需编程基础,使用本程序只需了解如何修改电脑网卡IP等地址。
  • 程序菜单界面

《【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序》

  • 该初始界面中显示当前电脑在局域网中的IP地址、子网掩码和默认网关,此时按下数字键1 ~ N可以选择需要运行的功能:
    (1)选择设置为其中一个IP地址/掩码/网关;
    (2)一次性添加多个(已经在程序中写好的)IP地址/掩码/网关;
    (3)设置为用户手动输入的单独IP地址/掩码/网关;
    (4)设置为自动获取IP地址;
    (5)查看电脑的网卡信息。
    *注:本例中,网卡的名称为 “本地连接 2”,请根据实际情况在后面的程序当中修改此名称!

程序功能介绍

  • 设置为其中一个IP地址

在菜单中,分别按下键盘上的数字键1~4,会自动将网卡设置为所选择的IP地址。
此处按下了数字键1,把IP设置为 10.176.3.253,效果如图:
《【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序》
其余设置单个IP的按键请自行试验。

  • 一次性添加多个IP地址

在菜单中,按下键盘上的数字键5(添加以上所有IP地址到网卡“本地连接2”):
IP1和网关1将作为优先级最高的IP地址和网关地址来使用;
而 IP2~IP4和它们的网关地址都会作为备用地址使用,在连接相同网段的设备时都能进行通信;
运行效果如图,此时网卡具有了4个IP地址和4个网关地址:
《【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序》
注:添加完毕后会自动运行命令行中的“ipconfig”以便观察网卡信息。

  • 手动设置IP地址

手动输入单个IP地址和网关地址,即只使用本次输入的唯一的IP地址和网关地址,按回车键来完成每一次输入。
-注:输入子网掩码时,按下回车,即输入了255.255.255.0,程序中的”MASK,也可根据需要修改
如图,当输入的IP地址有错误时(图中的 .666 值不正确),会出现系统提示,无法添加:
《【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序》
输入正确的IP和网关后,设置成功:
《【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序》

  • 自动获取IP地址

即将网卡的IP地址设置为自动获取(DHCP),用于平时连接路由器和上网冲浪等。
即批处理中的将网卡设置为DHCP命令。

  • 显示网卡的IP信息

  • 相当于在命令行CMD中的“ipconfig”指令,效果如图:
    《【Windows批处理/脚本/Batch】基于批处理的快速设置电脑IP地址程序》
使用说明

打开电脑中自带的记事本程序并新建一个空文件,把本文最后的所有代码依顺序复制粘贴到记事本中,最后另存为(*.bat)后缀名的文件(如:修改IP地址.bat)即可双击运行程序。
如果要修改程序中的代码,可直接用记事本等文本编辑器打开此文件。

  • 1.使用前,必须把 set NAME=“本地连接 2” 双引号内部改为需要被修改IP地址的网卡名称,
    如“本地连接”或“无线网络连接”等,修改保存后再运行程序
  • 2.在文本中可以修改为想要将网卡设置为的 IP地址 /掩码 /网关:IP1~IP4等等
  • 3.本程序的菜单不能超过9个可选项,所以注意IP5的值
  • 4.少数情况下,若出现菜单头部显示的 IP/掩码/网关 刷新慢,显示不出的情况,
    请在对应操作 setIP1/…/addIP/inputIP 的最后增加延时的时长:
    如:choice /t 5 /d y /n >nul
    增加里面的数字大小(这里是5),直到菜单头部IP信息的显示跟得上刷新速度即可!

注意:每次修改程序代码后要使修改的内容生效,必须保存并退出编辑器后再运行程序!

代码说明
  • 初始化设置:
    NAME:要修改IP设置的网卡适配器名称,本例中是“本地连接 2”;
    IPs:提前在本程序中填写的IP地址数量,本例中有4个IP地址;
    (注:为保证程序正常运作,IPs的值不要超过5)
    IP1 ~ IP4,MASK1 ~ MASK4和GATE1~ GATE4为提前在本程序中填写好的IP地址/子网掩码/网关地址,掩码默认为255.255.255.0,可根据需要修改;

  • 若要添加更多的IP地址和网关地址,则在(set GATE4=…)的下方添加类似语句:
    “set IP5=…”和“set GATE5=…”和 “set MASK5=%MASK%”,
    还需要在“:select”段后添加类似“:setIP1”或“:setIP2”等等的段落,注意修改IPs的数量。

  • 以上之外的参数、变量、语句等请勿随意修改,以免影响使用。

  • 开始界面/菜单:
    Call :displayIPinfo disp:调用显示当前IP信息的子函数;
    goto select:跳转到选择功能分支;

  • 选择功能:
    if errorlevel X goto Y:根据输入的数字X跳转到名为Y的子函数;
    跳转分支“setIP%%i”:设置为其中一个IP地址/网关地址;
    跳转分支“addIP”:一次性添加已写好的IP地址/网关地址;
    跳转分支“inputIP”:手动填写IP地址/网关地址;
    跳转分支“autoIP”:让网卡自动获取IP地址;
    跳转分支“ipcfg”:即在命令行”cmd”中输入”ipconfig”。

title 设置IP地址
@echo off
setlocal enabledelayedexpansion
color 71
rem WIN10系统CMD获取管理员权限
%1 start "" mshta Vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~s0"" ::","","runas",1)(window.close)&&exit
set NAME="本地连接 2"
set "MASK=255.255.255.0"
set IPs=4
set /a index1=%IPs%+1
set /a index2=%IPs%+2
set /a index3=%IPs%+3
set /a index4=%IPs%+4
set IP1=10.176.3.253
set MASK1=%MASK%
set GATE1=10.176.3.254
set IP2=192.168.2.222
set MASK2=%MASK%
set GATE2=192.168.2.1
set IP3=192.168.1.111
set MASK3=%MASK%
set GATE3=192.168.1.1
set IP4=172.31.220.1
set MASK4=%MASK%
set GATE4=172.31.220.254
SET _startchar=0
SET _length=%IPs%
SET _num=123456789
CALL SET _loop=%%_num:~%_startchar%,%_length%%%
set /a "_loop=%_loop%%index1%%index2%%index3%%index4%"
cls
Call :displayIPinfo disp
:start
echo.******************************* 菜单 *******************************
echo.*请输入相应数字来运行功能:(输入1-%index4%)*
echo.
for /L %%j in (1,1,%IPs%) do ( echo %%j:IP地址设置为:!IP%%j! 网关: !GATE%%j! 子网掩码: !MASK%%j! )
echo.
echo. %index1%: 添加以上所有IP地址到网卡:%NAME%
echo.
echo. %index2%:输入IP地址进行设置(使用单独的IP地址)
echo.
echo. %index3%: 自动获取IP地址
echo.
echo. %index4%: 显示网卡的IP信息
echo.******************************* 菜单 *******************************
goto select
:select
choice /c %_loop% /n /m "*请输入相应数字:"
if errorlevel %index4% goto cfgIP
if errorlevel %index3% goto autoIP
if errorlevel %index2% goto inputIP
if errorlevel %index1% goto addIP
for /L %%i in (%IPs%,-1,1) do (if errorlevel %%i goto setIP%%i )
:setIP1
cls
echo. 正在设置IP:%IP1%,网关:%GATE1%
netsh interface ip set address %NAME% static %IP1% %MASK1% %GATE1%
choice /t 4 /d y /n >nul
Call :displayIPinfo disp
goto start
:setIP2
cls
echo. 正在设置IP:%IP2%,网关:%GATE2%
netsh interface ip set address %NAME% static %IP2% %MASK2% %GATE2%
choice /t 4 /d y /n >nul
Call :displayIPinfo disp
goto start
:setIP3
cls
echo. 正在设置IP:%IP3%,网关:%GATE3%
netsh interface ip set address %NAME% static %IP3% %MASK3% %GATE3%
choice /t 4 /d y /n >nul
Call :displayIPinfo disp
goto start
:setIP4
cls
echo. 正在设置IP:%IP4%,网关:%GATE4%
netsh interface ip set address %NAME% static %IP4% %MASK4% %GATE4%
choice /t 4 /d y /n >nul
Call :displayIPinfo disp
goto start
:setIP5
cls
echo. 正在设置IP:%IP5%,网关:%GATE5%
netsh interface ip set address %NAME% static %IP5% %MASK5% %GATE5%
choice /t 4 /d y /n >nul
Call :displayIPinfo disp
goto start
:addIP
cls
echo 添加 IP1: %IP1%
echo 添加网关1: %GATE1%
netsh interface ip set address %NAME% static %IP1% %MASK1% %GATE1%
for /L %%i in (2,1,%IPs%) do (
echo 添加 IP%%i: !IP%%i!
echo 添加网关%%i: !GATE%%i!
netsh interface ip add address %NAME% !IP%%i! %MASK% !GATE%%i!
)
echo.正在添加IP地址,请稍等...
choice /t 3 /d y /n >nul
echo.添加完毕...
choice /t 1 /d y /n >nul
echo / ipconfig
ipconfig
echo / ipconfig
choice /t 5 /d y /n >nul
echo.
goto start
:inputIP
cls
Call :displayIPinfo disp
echo.
echo 手动设置IP地址(默认子网掩码: 255.255.255.0):
echo.
set /p IPin= IP地址:
set /p "MASK= 子网掩码:【按下回车为%MASK%】"
set /p GATEin= 网 关:
echo..........
netsh interface ip set address %NAME% static %IPin% %MASK% %GATEin%
echo.请稍等...
choice /t 4 /d y /n >nul
echo..........
cls
Call :displayIPinfo disp
echo.
goto start
:autoIP
cls
echo 设置的IP地址将被清除...
echo * IP设置为自动获取(DHCP) *
netsh interface ip set address %NAME% source=dhcp
choice /t 2 /d y /n >nul
Call :displayIPinfo disp
echo.-----------------------------------------------------------
goto start
:cfgIP
cls
echo.
echo / ipconfig
ipconfig
echo / ipconfig
echo.
choice /t 5 /d y /n >nul
goto start
:displayIPinfo
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "IPv4"') do set IPnow=%%i
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "子网掩码"') do set MASKnow=%%i
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "默认网关"') do set GATEnow=%%i
echo ------------------------------------------
echo 当前IP地址 :%IPnow%
echo 当前子网掩码:%MASKnow%
echo 当前默认网关:%GATEnow%
WIN10 :CMD批处理的管理员权限问题

WIN10系统运行CMD批处理会常见到无法获取管理员权限的问题。
知乎:怎样自动以管理员身份运行bat文件?
在程序头部的:

title 设置IP地址
@echo off
setlocal enabledelayedexpansion
color 71

的后面加上:(by Scruel)

%1 start "" mshta Vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~s0"" ::","","runas",1)(window.close)&&exit

OK了。

后话

希望有更多人能使用到本程序,或基于本程序的思想将其扩展延伸,发扬光大,这是好事,多人用的爽才是真的好用。
这不,有拿C#写界面来实时显示/改电脑IP的都出来了,某期杂志有这个构思的批处理修改IP文了,你们拿去写了哈。

某些电脑还是XP,so没用.Net写界面实现实时的功能,为了这要装.Net包有点啰嗦,目前这东西还是保持“原始”的好。

构思来源于某个批处理改Hosts文件,越墙用的,在此也感谢这位作者。


推荐阅读
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 如何更改电脑系统的自动校时服务器地址?
    本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
author-avatar
kuaike的诱惑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有