系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 脚本中心 > DOS/BAT > 详细页面

自动修改本机IP地址的bat代码

时间:2020-01-03来源:系统城作者:电脑系统城

代码比较多,经过我们小编测试,在2008 r2上无法正常执行,其实bat设置ip就是几个命令,无外乎加了一些判断与获取原来网络配置的一些信息,代码越复杂越容易出问题


 
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. title 修改本机IP地址 by:小小沧海20130409
  4. :init
  5. cls&echo ——————————————自动修改本机IP地址——————————————
  6. rem 系统版本,值可为Windows7或是WindowsXP,或是auto(表示自动获取)
  7. set SYSVER=auto
  8. rem 要更改的网卡名称,auto表示自动获取第一块“以太网适配器”
  9. set ETH=auto
  10. rem IP来源,值仅为两个static和dhcp,ques表示询问,由使用者填写
  11. rem 静态IP请填写static,从网关自动获取IP请填写dhcp
  12. set IPSOURCE=ques
  13. rem 要改成的IP地址,ques同上
  14. set IPADDR=ques
  15. rem 要改成的子网掩码,ques同上
  16. set MASK=ques
  17. rem 要使用的默认网关,ques同上
  18. set GATEWAY=ques
  19. rem DNS模式,值仅为两个static和dhcp
  20. rem 静态DNS请填写static,从网关自动获取DNS请填写dhcp
  21. set DNSSOURCE=ques
  22. rem 要使用的首选DNS,ques同上
  23. set DNS1=ques
  24. rem 要使用的备用DNS,ques同上
  25. set DNS2=ques
  26. set LOG=%TEMP%\changeIP_log.txt
  27. echo 运行日期:%date% %time%>%LOG%
  28.  
  29.  
  30. :start
  31. rem ===============使用者填写参数值=======================
  32. rem 自动获取系统版本,结果为 Windows7 或是 WindowsXP(只测试了这两个系统)
  33. if "%SYSVER%"=="auto" (
  34. set /p=正在自动获取系统版本...<nul
  35. for /f "skip=1 tokens=2-3 delims= " %%i in ('wmic os get caption') do setSYSVER=%%i%%j
  36. if /i "!SYSVER!"=="Windows7" (
  37. echo 成功![Win7]
  38. ) else (
  39. if /i "!SYSVER!"=="WindowsXP" (
  40. echo 成功![WinXP]
  41. ) else (
  42. echo [!SYSVER!]
  43. echo 【注意】非Win7和XP系统不保证能执行成功!&pause>nul
  44. )
  45. )
  46. )
  47.  
  48. rem 自动获取网卡名称
  49. if "%ETH%"=="auto" (
  50. echo 正在自动获取网络适配器信息...
  51. set index=0
  52. set select=1
  53. for /f "skip=3 tokens=4* delims= " %%i in ('netsh interface ipv4 show interfaces^|find /i /v "Loopback"') do (
  54. set /a index=!index!+1
  55. set ethname=%%j
  56. echo [!index!]!ethname!
  57. )
  58. if !index!==1 (
  59. set ETH=!ethname!
  60. ) else ( if !index! GTR 1 (
  61. :select
  62. set /p=请选择要设置的网卡编号:<nul
  63. set select=0&set /p select=
  64. if /i !select! LSS 1 goto select
  65. if /i !select! GTR !index! goto select
  66. set index=0
  67. for /f "skip=3 tokens=4* delims= " %%i in ('netsh interface ipv4 show interfaces^|find /i /v "Loopback"') do (
  68. set /a index=!index!+1
  69. if !index!==!select! (
  70. set ETH=%%j
  71. )
  72. )
  73. ))
  74.  
  75. if "!ETH!"=="auto" (
  76. echo 自动获取网卡名称失败,请右键编辑本批处理,手动填写网卡名称!&pause>nul&exit
  77. ) else (
  78. rem set/p=[!ETH!]<nul
  79. echo 成功!
  80. )
  81. )
  82.  
  83. :quesIP
  84. if "%IPSOURCE%"=="ques" (
  85. echo →请填写【IP地址来源】^(值仅为两个static和dhcp,直接回车为static^)
  86. set /p IPSOURCE=
  87. if "!IPSOURCE!"=="ques" set IPSOURCE=static
  88. if /i "!IPSOURCE!" NEQ "static" (if /i "!IPSOURCE!" NEQ "dhcp" (
  89. set IPSOURCE=static
  90. echo IP来源填写错误,将变更为static模式
  91. pause>nul
  92. ))
  93. )
  94. if /i "%IPSOURCE%"=="dhcp" goto quesDNS
  95.  
  96. if "%IPADDR%"=="ques" (
  97. echo →请填写【IP地址】^(直接回车为192.168.1.100^)
  98. set /p IPADDR=
  99. if "!IPADDR!"=="ques" set IPADDR=192.168.1.100
  100. )
  101.  
  102. if "%MASK%"=="ques" (
  103. echo →请填写【子网掩码】^(直接回车为255.255.255.0^)
  104. set /p MASK=
  105. if "!MASK!"=="ques" set MASK=255.255.255.0
  106. )
  107.  
  108. if "%GATEWAY%"=="ques" (
  109. echo →请填写【默认网关】^(直接回车为192.168.1.1^)
  110. set /p GATEWAY=
  111. if "!GATEWAY!"=="ques" set GATEWAY=192.168.1.1
  112. )
  113.  
  114. :quesDNS
  115. if "%DNSSOURCE%"=="ques" (
  116. echo →请填写【DNS来源】^(值仅为两个static和dhcp,直接回车为static^)
  117. set /p DNSSOURCE=
  118. if "!DNSSOURCE!"=="ques" set DNSSOURCE=static
  119. if /i "!DNSSOURCE!" NEQ "static" (if /i "!DNSSOURCE!" NEQ "dhcp" (
  120. set DNSSOURCE=static
  121. echo DNS来源填写错误,将变更为static模式
  122. pause>nul
  123. ))
  124. )
  125. if /i "%DNSSOURCE%"=="dhcp" goto checkInfo
  126.  
  127. if "%DNS1%"=="ques" (
  128. echo →请填写【首选DNS地址】^(直接回车为8.8.8.8^)
  129. set /p DNS1=
  130. if "!DNS1!"=="ques" set DNS1=8.8.8.8
  131. )
  132.  
  133. if "%DNS2%"=="ques" (
  134. echo →请填写【备用DNS地址】^(直接回车为8.8.4.4^)
  135. set /p DNS2=
  136. if "!DNS2!"=="ques" set DNS2=8.8.4.4
  137. )
  138.  
  139.  
  140. :checkInfo
  141. cls
  142. echo 即将应用以下配置:
  143. call :showInfo
  144. echo 请确认信息是否正确,输入Y继续,输入N退出,输入Q显示本机网络信息
  145. set choose=nul&set /p choose=
  146. if /i "%choose%"=="nul" goto checkInfo
  147. if /i "%choose%"=="N" exit
  148. if /i "%choose%"=="Q" call :getInfo & pause & goto checkInfo
  149. if /i "%choose%" NEQ "Y" goto checkInfo
  150. echo ★注意★请关闭防火墙或允许所有弹出的安全软件提示,否则无法成功执行!
  151.  
  152. :changeIP
  153. rem 通过dhcp删除原有IP配置
  154. echo →设置"%ETH%"的IP源为DHCP,以删除原有IP地址 >>%LOG%
  155. netsh -c interface ip set address name="%ETH%" source=dhcp >>%LOG%
  156. if /i "%IPSOURCE%"=="static" (
  157. echo →设置IP为"%IPADDR%",掩码为"%MASK%",网关为"%GATEWAY%" >>%LOG%
  158. netsh -c interface ip set address name="%ETH%" source=static address="%IPADDR%"mask="%MASK%" gateway="%GATEWAY%" gwmetric=1 >>%LOG%
  159. )
  160. rem 删除原有DNS配置
  161. echo →删除原有DNS配置 >>%LOG%
  162. netsh -c interface ip delete dns "%ETH%" all >>%LOG%
  163. if /i "%DNSSOURCE%"=="static" (
  164. echo →设置首选DNS为%DNS1% >>%LOG%
  165. netsh -c interface ip add dns name="%ETH%" addr="%DNS1%" index=1 >>%LOG%
  166. echo →设置备用DNS为%DNS2% >>%LOG%
  167. netsh -c interface ip add dns name="%ETH%" addr="%DNS2%" index=2 >>%LOG%
  168. rem ↑此处可继续增加多个DNS服务器地址
  169. ) else (if /i "%DNSSOURCE%"=="dhcp" (
  170. echo →设置DNS为DHCP模式 >>%LOG%
  171. netsh -c interface ip set dns name="%ETH%" dhcp >>%LOG%
  172. ))
  173.  
  174. :end
  175. cls
  176. rem echo 【要设定的信息】
  177. rem call :showInfo
  178. echo 【当前本机信息】
  179. call :getInfo
  180. echo ======================================
  181. echo 如果上下一致则说明修改成功!
  182. echo 如果不一致则请查看日志文件!
  183. echo 输入L查看日志文件,输入E退出程序。
  184. set choose=nul&set /p choose=
  185. if /i "%choose%"=="L" start %LOG%&goto end
  186. if /i "%choose%"=="E" exit
  187. if /i "%choose%"=="nul" goto end
  188.  
  189.  
  190. echo 程序执行结束,按任意键退出...
  191. pause>nul
  192. exit
  193.  
  194.  
  195. :showInfo
  196. echo 【本机系统】:%SYSVER%
  197. echo 【网卡名称】:%ETH%
  198. echo 【IP来源 】:%IPSOURCE%
  199. if "%IPSOURCE%"=="static" (
  200. echo 【IP地址 】:%IPADDR%
  201. echo 【子网掩码】:%MASK%
  202. echo 【默认网关】:%GATEWAY%
  203. )
  204. echo 【DNS来源 】:%DNSSOURCE%
  205. if "%DNSSOURCE%"=="static" (
  206. echo 【首选DNS 】:%DNS1%
  207. echo 【备用DNS 】:%DNS2%
  208. )
  209. rem goto :eof等于返回return
  210. goto :eof
  211.  
  212.  
  213. :getInfo
  214. netsh -c interface ip show address name="%ETH%"
  215. netsh -c interface ip show dns name="%ETH%"
  216. goto :eof
  217.  
  218. :windows7
  219.  
  220. ==============================================
  221. 接口 "本地连接" 的配置
  222. DHCP 已启用: 否
  223. IP 地址: 192.168.1.253
  224. 子网前缀: 192.168.1.0/24 (掩码 255.255.255.0)
  225. 默认网关: 192.168.1.1
  226. 网关跃点数: 1
  227. InterfaceMetric: 20
  228.  
  229.  
  230. 接口 "本地连接" 的配置
  231. 静态配置的 DNS 服务器: 8.8.8.8
  232. 8.8.4.4
  233. 用哪个前缀注册: 只是主要

BAT批处理复杂环境下的IP地址修改设置


 
  1. @echo off
  2. mode con cols=70 lines=38
  3. color a
  4. title D-小苏-学习-Bat-快速修改本地IP地址
  5. :ShowReadme
  6. cls
  7. echo.
  8. echo *********************学习-Bat-快速修改本地IP地址**********************
  9. echo.
  10. echo 实现功能(以下情况下测试通过):
  11. echo 1.多连接名称:自动获取网络连接名称
  12. echo 2.多连接属性:有线连接,无线连接,虚拟连接
  13. echo 3.多操作系统:Windows XP,Windows 7 / 8.1
  14. echo 4.多网络连接:无线连接2个,有线连接1个,VMware连接2个
  15. echo 5.区域的DNS:判断计算机可以连接互联网则采用当前DNS设置
  16. echo 6.空格名称:VMware Virtual Ethernet Adapter for VMnet1
  17. echo 7.优化设置:优化选择步骤,添加选择序号,保存配置内容
  18. echo 8.设置方法:可转换Netsh interface ip set 和WMIC nicconfig
  19. echo 9.获取优化:判断网关值,存储有效的网关值以打开路由器设置页
  20. echo.
  21. echo *********************学习-Bat-快速修改本地IP地址**********************
  22. ping -n 1 127.1 >nul
  23. :Set_localTemp
  24. setlocal enabledelayedexpansion
  25. ver | find "6." > NUL &&(cls&echo. &echo -------------------------------当前系统为 Windows 7以上系统 &Set "WindowsVer=Windows 7" &goto :Set_NetConnectionID)
  26. cls&echo. &echo -------------------------------当前系统不是 Windows 7以上系统 &Set"WindowsVer=WindowsXP" &goto :Set_NetConnectionID
  27. :Set_NetConnectionID
  28. rem 获取设置网络连接名称
  29. cls
  30. echo.
  31. echo *************选择网络连接名称*****************IN %WindowsVer%**********
  32. echo.
  33. set "str=DefaultIPGateway^,IPAddress^,DNSServerSearchOrder^,IPSubnet^,DHCPEnabled"
  34. for /f "skip=1tokens=1*" %%i in ('wmic Nic where "Manufacturer<>'Microsoft' and NetConnectionStatus='2'" get Index^,NetConnectionID^') do (
  35. for /f "tokens=1* delims=:" %%j in ("%%j") do (
  36. set $%%i=%%j
  37. Echo %%i_%%j>>适配器_Index_Name.txt
  38. echo.
  39. echo 适配器_ID_Index: %%i
  40. echo 适配器_名_NName: %%j
  41. for /f "tokens=1-3delims={}," %%a in ('wmic Nicconfig where "Index='%%i'" get %str% /value') do (
  42. for /f %%c in (%%c) do if /i "%%a" == "DNSServerSearchOrder=" set "DNS2=%%c"
  43. for /f %%c in ("%%a%%~b") do set "%%c"
  44. )
  45. if /i "!DHCPEnabled!" == "TRUE" (
  46. echo 适配器_IP_模式 : 自动
  47. ) else echo 适配器_IP_模式 : 手动
  48. IF not defined Net_IP set Net_IP=!IPAddress!
  49. echo 适配器_IP_地址 : !IPAddress! Net_IP_地址 : !Net_IP!
  50. IF not defined Net_MASK set Net_MASK=!IPSubnet!
  51. Rem 判断是否存在值,以解决之后Net_MASK赋值为空的情况,保证Net_MASK存在值
  52. echo 适配器_子网掩码: !IPSubnet! Net_子网掩码: !Net_MASK!
  53. IF not defined Net_gateway set Net_gateway=!DefaultIPGateway!
  54. echo 适配器_默认网关: !DefaultIPGateway! Net_默认网关: !Net_gateway!
  55. IF not defined Net_dnsPra set Net_dnsPra=!DNSServerSearchOrder!
  56. echo 适配器_首选_DNS: !DNSServerSearchOrder! Net_首选_DNS: !Net_dnsPra!
  57. IF defined dns2 set Net_dns2=!DNS2! &echo 适配器_配用_DNS :!DNS2! Net_配用_DNS:!Net_dns2!
  58. )
  59. )
  60. echo.
  61. echo.
  62. echo ************************选择网络连接名称*****************************
  63. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* 适配器_Index_Name.txt') do echo ID_%%a_%%b)>适配器_ID_Index_Name.txt
  64. REM 生成选择结构,添加序号ID_,避免纯查找数字序号会关键词的查找重复
  65. for /f "tokens=2-4 delims=_" %%a in (适配器_ID_Index_Name.txt) do (
  66. set NetConID=%%a
  67. set NetConnectionID_Index=%%b
  68. set NetConnectionName_Index=%%c
  69. echo 适配器ID:!NetConID! 标号Index:!NetConnectionID_Index! 名称:!NetConnectionName_Index!
  70. )
  71. echo *************选择网络连接名称*****************IN %WindowsVer%***********
  72. :Set_Net_Ask
  73. Echo.
  74. echo.
  75. set /p NetConID=选择需要配置 适配器 对应 数字ID :
  76. if /i "%NetConID%" == "q" exit
  77. echo.
  78. echo.
  79. set NetConnectionName_Index=
  80. for /f "tokens=2-4 delims=_" %%a in ('findstr "ID_%NetConID%" 适配器_ID_Index_Name.txt') do (
  81. setlocal enabledelayedexpansion
  82. set NetConnectionID_Index=%%b
  83. set NetConnectionName_Index=%%c
  84. echo 当前选择适配器ID:!NetConID! 标号Index:!NetConnectionID_Index! 名称:!NetConnectionName_Index!
  85. )
  86. if "%NetConnectionName_Index%" == "" (echo 选择选项超出范畴 ... &ping -n 3 127.1>nul &goto Set_Net_Ask) else (set net_interface=%NetConnectionName_Index% &echo 名称:!net_interface! )
  87. if exist 适配器_Index_Name.txt (del /a /f /s /q 适配器_Index_Name.txt) else echo 适配器_Index_Name.txt文件夹不存在
  88. if exist 适配器_ID_Index_Name.txt (del /a /f /s /q 适配器_ID_Index_Name.txt) else echo 适配器_ID_Index_Name.txt文件夹不存在
  89. ping -n 1 127.1>nul
  90. :Set_RamdonIP
  91. Rem 如果计算机可以连接互联网,判断网络DNS、网关是否可用,可以连接互联网则只改IP,启用当前区域DNS...
  92. Rem 获得可上网IP前三位,设置为随机IP前三位
  93. if "%Net_IP%" == "" (echo 设置Net_IP &set Net_IP=192.168.1.128)
  94. for /f "tokens=1-4 delims=/." %%a in ("%Net_IP%") do (set IPa_=%%a.%%b.%%c)
  95. set /a IPb_=%random%%%255+3
  96. set "net_IPnew=%IPa_%.%IPb_%"
  97. echo 随机IP前三位[%IPa_%] 生成随机IP [%net_IPnew%]
  98. ping 127.0.0.1 -n 1 >nul 1>nul
  99. ping www.baidu.com &echo %errorlevel%
  100. if %errorlevel% equ 1 goto:Set_Net_Set_NoHave
  101. if %errorlevel% equ 0 goto:Set_Net_Set_Have
  102. :Set_Net_Set_Have
  103. Echo 当前计算机可以连通互联网...启用当前区域DNS...
  104. set Net_Ping=1
  105. set Net_IP_Diy=%net_IPnew%
  106. Rem 当前IP地址
  107. ping -n 1 127.0.0.1>nul
  108. goto DiyCHOICE
  109. :Set_Net_Set_NoHave
  110. Echo 当前计算机无法连通互联网...
  111. set Net_Ping=0
  112. set Net_IP_Diy=%net_IPnew%
  113. set "Net_MASK=255.255.255.0"
  114. set "Net_gateway=192.168.1.1"
  115. set "Net_dnsPra=202.100.192.68"
  116. set "Net_dns2=202.100.199.8"
  117. ping -n 1 127.0.0.1>nul
  118. goto DiyCHOICE
  119. :DiyCHOICE
  120. cls
  121. echo.
  122. echo ****************************IP快速切换程序***************************
  123. echo.
  124. echo 当前选择网络连接:
  125. echo ID:%NetConID% 名称:%net_interface%
  126. echo.
  127. echo.
  128. echo --------------1.修改为随机IP---------------------%Net_IP_Diy%
  129. echo --------------2.设自动获取IP---------------------XXX.XXX.X.XXX
  130. echo --------------3.手动设网关IP---------------------192.XXX.X.XXX
  131. echo --------------4.查看网络设置---------------------%Net_IP%
  132. echo --------------5.设置路由器页---------------------%Net_gateway%
  133. echo.
  134. echo --------------r.重启网卡-------------------------x.退出程序---
  135. echo.
  136. echo.
  137. echo **** IN %WindowsVer% *******************************Tools By S34205****
  138. echo.
  139. echo.
  140. echo.
  141. if "%Net_Ping%" == "1" (echo 当前计算机可以连接互联网,启用当前区域DNS...) else (echo 当前计算机无法连接互联网,可能需要设置您区域DNS....)
  142. echo 随机的IP:[%Net_IP_Diy%]
  143. echo 子网掩码:[%Net_MASK%]
  144. echo 默认网关:[%Net_gateway%]
  145. echo 首选DNS:[%Net_dnsPra%]
  146. IF defined dns2 echo 备用DNS:[%Net_dns2%]
  147. echo.
  148. echo.
  149. ping -n 1 127.1 >nul
  150. echo.
  151. :Diysetchoice
  152. set /p SetChoice_C= 请输入操作:
  153. Echo.
  154. Echo.
  155. IF NOT "%SetChoice_C%"=="" SET SetChoice_C=%SetChoice_C:~0,1%
  156. if /i "%SetChoice_C%"=="1" goto Static_ip
  157. if /i "%SetChoice_C%"=="2" goto DHCP_ip
  158. if /i "%SetChoice_C%"=="3" goto Diy_ip
  159. if /i "%SetChoice_C%"=="4" goto Look_ip
  160. if /i "%SetChoice_C%"=="5" goto Set_Moden_Web
  161. if /i "%SetChoice_C%"=="r" goto rebootnet
  162. if /i "%SetChoice_C%"=="x" goto END
  163. echo 输入的选择超出范围...
  164. ping -n 3 127.1>nul
  165. goto DiyCHOICE
  166. :Static_ip
  167. echo.
  168. echo 设置随机IP:[%Net_IP_Diy%] ...
  169. REM netsh interface ip set address name="%net_interface%" source=staticaddr=%Net_IP_Diy% mask=%net_MASK%
  170. REM echo 设置IP成功...
  171. REM Echo 设置网关...
  172. REM netsh interface ip set address name="%net_interface%" gateway=%Net_gateway%gwmetric=1
  173. REM echo 设置DNS...
  174. REM netsh interface ip set dns name="%net_interface%" static addr=%Net_dnsPra%register=PRIMARY
  175. REM netsh interface ip add dns name="%net_interface%" addr=%Net_dns2% index=2
  176. wmic nicconfig where index=%NetConnectionID_Index% call enablestatic(%Net_IP_Diy%),(%net_MASK%)
  177. wmic nicconfig where index=%NetConnectionID_Index% call setgateways(%Net_gateway%)
  178. wmic nicconfig where index=%NetConnectionID_Index% call setdnsdomain(%Net_dnsPra%)  
  179. wmic nicconfig where index=%NetConnectionID_Index% call SetDNSServerSearchOrder(%Net_dns2%)
  180. goto Set_IP_Done
  181. :DHCP_ip
  182. echo.
  183. echo 正在设置IP为自动获取,请等待...
  184. REM echo 设置IP中...
  185. REM netsh interface ip set address name="%net_interface%" source=dhcp
  186. REM echo 设置网关成功...设置DNS中...
  187. REM netsh interface ip set dns "%net_interface%" source=dhcp
  188. wmic path Win32_NetworkAdapterConfiguration.index=%NetConnectionID_Index% call enabledhcp
  189. wmic path Win32_NetworkAdapterConfiguration.index=%NetConnectionID_Index% call SetDNSServerSearchOrder()
  190. goto Set_IP_Done
  191. :Diy_ip
  192. set/p Net_IP_Diy=请输入IP地址 XXX.XXX.XXX.XXX:
  193. set/p Net_gateway=请输入网关地址 XXX.XXX.XXX.XXX:
  194. set/p Net_dnsPra=请输入主dns地址 XXX.XXX.XXX.XXX:
  195. REM netsh interface ip set address name="%net_interface%"source=staticaddr=%Net_IP_Diy% mask=255.255.255.0
  196. REM netsh interface ip set address name="%net_interface%" gateway=%Net_gateway%gwmetric=0
  197. REM netsh interface ip set dns name="%net_interface%" source=static addr=%Net_dnsPra%register=PRIMARY
  198. wmic nicconfig where index=%NetConnectionID_Index% call enablestatic(%Net_IP_Diy%),(%net_MASK%)
  199. wmic nicconfig where index=%NetConnectionID_Index% call setgateways(%Net_gateway%)
  200. wmic nicconfig where index=%NetConnectionID_Index% call setdnsdomain(%Net_dnsPra%)  
  201. wmic nicconfig where index=%NetConnectionID_Index% call SetDNSServerSearchOrder(%Net_dns2%)
  202. goto Set_IP_Done
  203. :Look_ip
  204. Echo.
  205. if "%LookNum%" == "2" (
  206. Echo 打开:控制面板-网络连接...
  207. ping -n 1 127.1>nul
  208. start control ncpa.cpl
  209. Echo 说明:开启环境延迟第二次Bat运行适配器属性不会改变,所以第二次次信息查看需要手动查看属性... &Echo.
  210. echo,前次%net_interface%地址的IP:%IPAddress% &echo,前次%net_interface%子网掩码:%IPSubnet% &echo,前次%net_interface%默认网关:%DefaultIPGateway%
  211. ping -n 6 127.1>nul &goto Set_IP_Done
  212. )
  213. set LookNum=1
  214. set /a LookNum+=1
  215. Echo 查看网络连接%net_interface%的属性:
  216. set "w1=wmic nic where "NetConnectionID="%net_interface%"" get Index"
  217. for /f %%a in ('%w1% ^| findstr /b [0-9]') do set "n=%%a"
  218. set "w2=wmic nicconfig where "Index='%n%'" get DefaultIPGateway^,IPAddress^,IPSubnet"
  219. for /f tokens^=1-2delims^={^" %%a in ('%w2% /value^|find "."')do set "%%a%%b"
  220. echo,%net_interface%地址的IP:%IPAddress%
  221. echo,%net_interface%子网掩码:%IPSubnet%
  222. echo,%net_interface%默认网关:%DefaultIPGateway%
  223. ping -n 6 127.1>nul
  224. goto Set_IP_Done
  225. :rebootnet
  226. echo 重启网卡中...请稍等...
  227. ping -n 3 127.1>nul
  228. netsh interface set interface "%net_interface%" disabled
  229. netsh interface set interface "%net_interface%" enable
  230. goto Set_IP_Done
  231. :Set_Moden_Web
  232. Echo 需要修改%net_interface%IP为网关地址段[%Net_gateway%]...
  233. set /p SetChoice_Web=是(1) 否(2) 返回(3) :
  234. Echo.
  235. IF NOT "%SetChoice_Web%"=="" SET SetChoice_Web=%SetChoice_Web:~0,1%
  236. if /i "%SetChoice_Web%"=="1" goto Set_web_ip
  237. if /i "%SetChoice_Web%"=="2" goto Set_no_web_ip
  238. if /i "%SetChoice_Web%"=="2" goto DiyCHOICE
  239. echo 输入的选择超出范围...
  240. ping -n 3 127.1>nul
  241. goto :Set_Moden_Web
  242. :Set_web_ip
  243. Rem 获得网关前三位,设置为IP前三位,如果不存在则创建
  244. if "%Net_gateway%" == "" (echo 设置Net_gateway &set Net_gateway=192.168.1.1)
  245. for /f "tokens=1-4 delims=/." %%a in ("%Net_gateway%") do (set Set_web_IPa_=%%a.%%b.%%c)
  246. set /a Set_web_IPb_=%random%%%255+3
  247. set "Set_web_net_IPnew=%Set_web_IPa_%.%Set_web_IPb_%"
  248. echo IP前三位:%Set_web_IPa_% 后一位:%Set_web_IPb_%
  249. echo 正在设置%net_interface%为网关IP[%Set_web_net_IPnew%]......
  250. wmic nicconfig where index=%NetConnectionID_Index% call enablestatic(%Set_web_net_IPnew%),(%net_MASK%)
  251. echo 已经设置%net_interface%为网关IP[%Set_web_net_IPnew%]......
  252. goto :Set_no_web_ip
  253. :Set_no_web_ip
  254. Echo 当前网关为:%Net_gateway% ,正在打开 http://%Net_gateway% ....
  255. ping %Net_gateway% >nul
  256. start "%programfiles%\Internet Explorer\iexplore" http://%Net_gateway%
  257. ping -n 3 127.1>nul
  258. goto :Set_IP_Done
  259. :Set_IP_Done
  260. echo.
  261. echo OK,设置完成...
  262. ping -n 1 127.1>nul
  263. echo OK,任务完成,返回选择菜单...
  264. ping -n 1 127.1>nul
  265. GOTO DiyCHOICE
  266. :end
  267. echo **********************退出......................*********************
  268. Endlocal
  269. ping -n 3 127.1>nul
  270. exit

继续分享一个


 
  1. @echo off
  2. for /f "delims=" %%a in ('wmic NIC where "NetEnabled='TRUE'" get MACAddress^,NetConnectionID /value^|find "="') do set %%a
  3. for /f "delims=" %%a in ('wmic NICCONFIG where "MACAddress='%MACAddress%'" get IPAddress /value^|find "="') do set %%a
  4. for /f "delims={," %%a in ("%IPAddress%") do set ip=%%~a
  5. for /f "tokens=1-4 delims=." %%a in ("%ip%") do set last=%%d
  6. echo;%ip%
  7. echo;%last%
  8. echo;%NetConnectionID%
  9.  
  10. netsh interface ipv4 set address name="本地连接" addr=192.168.1.%last%mask=255.255.255.0 gwmetric=30
  11. netsh interface ipv4 add address name="本地连接" addr=192.168.2.%last%mask=255.255.255.0 gateway=192.168.2.1 gwmetric=1
  12. exit

如果是小编自己用的话直接用

netsh interface ipv4 add address name="本地连接" addr=192.168.2.8 mask=255.255.255.0 gateway=192.168.2.1 gwmetric=1

需要事先把这些ip、子网掩码、网关设置好,执行运行就可以了,方便粗暴。

分享到:

相关信息

  • cmd关机命令是什么

    cmd命令是一个可以让用户们对电脑进行各种快捷操作的实用型命令!今天小编为大家带来的就是如何使用cmd命令来进行电脑关机,感兴趣的话就快来看看吧。...

    2022-10-23

  • cmd命令怎么同时运行两个命令

    cmd命令是一个非常神奇的操作指令,很多的小伙伴们都不知道如何在cmd命令中同时运行两个命令,今天小编就为大家带来了cmd命令同时运行两个命令的方法!感兴趣的话就快来看看吧。...

    2022-10-23

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载