无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6642|回复: 67
打印 上一主题 下一主题

[原创] 【20230918】获取离线系统IP地址,兼容PE&桌面系统

    [复制链接]
跳转到指定楼层
1#
发表于 2023-9-15 15:22:24 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 BEIKING 于 2023-9-18 19:52 编辑
  1. @echo off
  2. if /i "%UserName%" == "SYSTEM" (Goto GotAdmin) else (reg query "HKLM\SYSTEM\ControlSet001\Control\MiniNT" 1>nul 2>nul&&Goto GotAdmin)
  3. :BatchGotAdmin
  4. Set _Args=%*
  5. if `%1` neq `` Set "_Args=%_Args:"=""%"
  6. if exist %WinDir%\System32\fltMC.exe fltMC 1>nul 2>nul||mshta VBScript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c """"%~f0"" %_Args%""",,"runas",1)(Window.Close) 2>nul&&Exit /b

  7. :GotAdmin
  8. Pushd "%CD%"&cd /d "%~dp0"
  9. Title 获取目标系统 IP&Color 2f
  10. MODE 1>nul 2>nul&&MODE con: Cols=42 Lines=11

  11. :Start
  12. setlocal enabledelayedexpansion
  13. if `%1` neq `` Set Input=%1&Goto Input
  14. Set n=0&for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist "%%i:\Windows\System32\Config\SOFTWARE" if exist "%%i:\Windows\System32\Config\SYSTEM" Set /a n+=1&Set dsk!n!=%%i
  15. if !n! equ 1 Set Input=!dsk%n%!&MODE 1>nul 2>nul&&MODE con: Cols=42 Lines=7&Goto Input
  16. if !n! geq 2 Set /a l=7+!n!*2&MODE 1>nul 2>nul&&MODE con: Cols=42 Lines=!l!
  17. Call :EchoX "e0.:选择您要查询的目标系统↓"
  18. for /l %%i in (1,1,!n!) do echo.&Call :EchoX "            " "9f::[%%i]" "  " "xx.:!dsk%%i!:\Windows"
  19. echo.&Call :EchoX "70::输入序号[" "74::默认1" "70::]"&Set n=1&Set /p n=:
  20. Set Input=!dsk%n%!&if not defined Input Set Input=!n!

  21. :Input
  22. Set Input=%Input:~0,1%
  23. if /i "%Input%:" neq "%SystemDrive%" (
  24.     for %%a in (SOFTWARE SYSTEM) do if not exist "%Input%:\Windows\System32\Config\%%a" Cls&Call :EchoX "cf.:找不到注册表文件!!"&echo "%Input%:\Windows\System32\Config\%%a"&Call :Delay 5 +&Exit
  25.     reg load HKLM\IP_SOF %Input%:\Windows\System32\Config\SOFTWARE 1>nul 2>nul
  26.     reg load HKLM\IP_SYS %Input%:\Windows\System32\Config\SYSTEM 1>nul 2>nul
  27.     Call :GetIPInfo IP_SOF IP_SYS
  28.     reg unload HKLM\IP_SOF 1>nul 2>nul
  29.     reg unload HKLM\IP_SYS 1>nul 2>nul
  30. ) else Call :GetIPInfo SOFTWARE SYSTEM
  31. if exist "%TEMP%\IPInfo.txt" (msg 1>nul 2>nul&&msg * /time 3600<"%TEMP%\IPInfo.txt"||@start "" "%TEMP%\IPInfo.txt")
  32. Call :Delay 2 +
  33. endlocal
  34. Exit

  35. :GetIPInfo
  36. Call :EchoX "e0.:正在查询中,请稍候。。。"
  37. for /f "tokens=1,2*" %%a in ('reg query "HKLM\%2\select" 2^>nul') do if /i "%%a" == "Default" Set /a x=%%c
  38. Set "v1=Microsoft\Windows NT\CurrentVersion\NetworkCards"
  39. Set "v2=ControlSet00%x%\Control\Network"
  40. Set "v3=ControlSet00%x%\services\Tcpip\Parameters"
  41. Set "s=EnableDHCP NameServer IPAddress SubnetMask DefaultGateway"
  42. Set "s=%s% DHCPNameServer DHCPIPAddress DHCPSubnetMask DHCPDefaultGateway"
  43. Set n=&for /f "delims=" %%a in ('reg query "HKLM\%1\%v1%" 2^>nul') do (
  44.     Set "v=%%a"
  45.     if "!v:%v1%\=!" neq "!v!" (
  46.         Set /a n+=1
  47.         for /f "tokens=1,2*" %%b in ('reg query "%%a" 2^>nul') do if /i "%%b" == "ServiceName" (Set "Guid!n!=%%d") else if /i "%%b" == "Description" Set "NetCard!n!=%%d"
  48.     )
  49. )
  50. if not defined n Call :EchoX "cf.:找不到网卡!!"&Call :Delay 5 +&Exit
  51. (for /f "tokens=1,2*" %%a in ('reg query "HKLM\%2\%v3%" 2^>nul') do (
  52.     if /i "%%a" == "Domain" (
  53.         if "%%c" neq "" (echo 域名名称:%%c) else echo 域名名称:
  54.     ) else if /i "%%a" == "HostName" echo 主机名称:%%c
  55. )) >"%TEMP%\IPInfo.txt"
  56. for %%a in (%s%) do Set "_%%a=1"
  57. (for /l %%a in (1 1 %n%) do (
  58.     echo.&echo 网卡名称:!NetCard%%a!
  59.     for %%b in (%s%) do Set "%%b="
  60.     Set flag=&for /f "delims=" %%b in ('reg query "HKLM\%2\%v2%" /s 2^>nul') do (
  61.         if defined flag (
  62.             for /f "tokens=1,2*" %%c in ("%%b") do if /i "%%c" == "Name" echo 连接名称:%%e& Set "flag="
  63.         ) else (
  64.             Set "v=%%b"
  65.             for %%c in ("\!Guid%%a!") do if "!v:%%~c=!" neq "!v!" Set flag=1
  66.         )
  67.     )
  68.     for /f "tokens=1,2*" %%b in ('reg query "HKLM\%2\%v3%\Interfaces\!Guid%%a!" 2^>nul') do if defined _%%b if "%%d" neq "" Set "v=%%d"&Set "%%b=!v:\0=        !"
  69.     if defined IPAddress (echo IP地址:!IPAddress!) else echo IP地址:!DHCPIPAddress!        [自动获取]
  70.     if defined SubnetMask (echo 子网掩码:!SubnetMask!) else echo 子网掩码:!DHCPSubnetMask!
  71.     if defined DefaultGateway (echo 默认网关:!DefaultGateway!) else echo 默认网关:!DHCPDefaultGateway!
  72.     if defined NameServer (Set DNS=!NameServer: =,!&Set dhcp=) else (Set DNS=!DHCPNameServer: =,!&Set dhcp=        [自动获取])
  73.     Set d=DNS 地址:&for %%i in (!DNS!) do if not defined "n%%a_%%i" echo !d!%%i!dhcp!&Set ""n%%a_%%i"=%%a"&Set dhcp=&Set d=     
  74. )) >>"%TEMP%\IPInfo.txt"
  75. Goto :eof

  76. :Delay :: 延迟操作 <%1=Sec|延迟秒数> [%2=+|显示倒计时]。
  77. if `%2` == `+` (Set n=2) else Set n=1
  78. if exist %WinDir%\System32\timeout.exe (timeout /t %1 %n%>nul) else if exist %WinDir%\System32\choice.exe (choice /t %1 /d y /n >nul) else ping 127.1 -n %1 >nul
  79. Goto :eof

  80. :EchoX :: 显示彩色文字 (不支持半角字符 \ / : * ? " < >|. % ! ~)。
  81. setlocal enabledelayedexpansion
  82. Set echox=EchoX.exe&&!echox! 1>nul 2>nul||(Set echox=&mkdir "%TEMP%\EchoX" 2>nul)
  83. for %%a in (%*) do (
  84.     Set "param=%%a"&Set "param=!param:"=!"
  85.     Set "color=!param:~0,2!"&(if not exist %WinDir%\System32\findstr.exe if not defined echox Set "color=xx")
  86.     Set n=0&(if "!param:~2,2!" == "::" Set n=1)&(if "!param:~2,2!" == ".:" Set n=2)
  87.     if !n! gtr 0 (
  88.         if /i "!color!" == "xx" (Set /p="_!param:~4!"<nul) else (Set param=%%~nxa&if defined echox (!echox! -c !color! -n "!param:~4!") else (Pushd "%TEMP%\EchoX" 2>nul&>"!param:~4!",Set /p= <nul&findstr /a:!color! .* "!param:~4!*"&del "!param:~4!"&Popd))
  89.         if !n! == 2 echo.
  90.     ) else if defined param Set /p="_!param!"<nul
  91. )
  92. endlocal
  93. Goto :eof
复制代码




批处理脚本用途
获取(离线和在线)Win系统主机:域名名称、主机名称、网卡信息(连接名称、IP地址、子网掩码、默认网关、DNS地址)

读取离线注册表IP信息方法非原创,借鉴的是无忧某位坛友分享的。
允许传参调用:   
    获取目标系统IP.bat C
    获取目标系统IP.bat D

【20230916】
1)释放临时文件到%TEMP%目录,避免因当前目录无写权限而报错。
2)格式化DNS地址输出并去重。

【20230918】
1)优化多系统选择体验,单一系统自动打开查询,多系统提供列表选择
2)支持网卡多IP设置查询

链接: https://pan.baidu.com/s/1tVJv4NWAY9bkzIy6VSHX_w 提取码: sad4



评分

参与人数 7无忧币 +33 收起 理由
Allreal + 5 很给力!
wh07027 + 5 很给力!
zhczf + 3 赞一个!
holley2008 + 5 很给力!
baosheng00 + 5 很给力!
cuicongyuan + 5 很给力!
freesoft00 + 5

查看全部评分

69#
发表于 2024-11-2 17:29:16 | 只看该作者
大佬脚本不错,能不能出个不输出弹出对话框的,而是输出到D:\IpSet.bat;并且这个批处理可以直接运行即可设置IP?万谢!
回复

使用道具 举报

68#
发表于 2024-10-24 10:14:01 | 只看该作者
感谢楼主分享
回复

使用道具 举报

67#
发表于 2024-4-19 14:59:18 | 只看该作者
这是个好东西
回复

使用道具 举报

66#
发表于 2024-4-19 14:30:54 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

65#
发表于 2024-1-25 21:54:58 | 只看该作者
感谢分享!
回复

使用道具 举报

64#
发表于 2023-12-9 12:49:08 | 只看该作者
谢谢分享
回复

使用道具 举报

63#
发表于 2023-12-9 12:09:09 | 只看该作者
这个绝对好的,收藏了.做维护很有用
回复

使用道具 举报

62#
发表于 2023-10-22 14:09:43 | 只看该作者

谢谢分享
回复

使用道具 举报

61#
发表于 2023-10-22 13:58:26 | 只看该作者
本帖最后由 kuding 于 2023-10-22 13:59 编辑

这个好强大。。。建议加版本号或更新时间
回复

使用道具 举报

60#
发表于 2023-10-12 13:50:02 | 只看该作者
谢谢分享
回复

使用道具 举报

59#
发表于 2023-9-26 16:03:33 | 只看该作者
6666666
回复

使用道具 举报

58#
发表于 2023-9-23 15:22:25 | 只看该作者
收藏,很实用的工具
回复

使用道具 举报

57#
发表于 2023-9-21 09:43:37 | 只看该作者
这个还是很有用的,感谢分享
回复

使用道具 举报

56#
发表于 2023-9-21 09:13:29 | 只看该作者
看起来很不错哦,收藏之~~~
谢谢LZ啦!!!
回复

使用道具 举报

55#
发表于 2023-9-21 08:43:44 | 只看该作者
这个批处理好用啊,找IP省事多了。
回复

使用道具 举报

54#
发表于 2023-9-21 08:23:10 | 只看该作者
感谢分享,有忘记时的后备
回复

使用道具 举报

53#
发表于 2023-9-20 23:42:27 | 只看该作者
感谢分享,谢谢了
回复

使用道具 举报

52#
发表于 2023-9-20 22:35:50 | 只看该作者
离线获取IP经常要用到,谢谢分享
回复

使用道具 举报

51#
发表于 2023-9-20 22:24:07 | 只看该作者
感谢分享~~很不错的工具收藏了
回复

使用道具 举报

50#
发表于 2023-9-20 08:15:51 | 只看该作者
感谢楼主,很好用!
回复

使用道具 举报

49#
发表于 2023-9-19 22:14:36 | 只看该作者
收藏备用!
回复

使用道具 举报

48#
发表于 2023-9-19 22:11:11 | 只看该作者
感谢分享好东东
回复

使用道具 举报

47#
发表于 2023-9-19 22:09:33 | 只看该作者
谢谢分享
回复

使用道具 举报

46#
发表于 2023-9-19 21:55:17 | 只看该作者
感谢分享
回复

使用道具 举报

45#
 楼主| 发表于 2023-9-18 17:14:53 | 只看该作者
holley2008 发表于 2023-9-18 14:15
我直接在服务器桌面运行的脚本,见图:

【20230918】
1)优化多系统选择体验,单一系统自动打开查询,多系统提供列表选择
2)支持网卡多IP设置查询
回复

使用道具 举报

44#
 楼主| 发表于 2023-9-18 16:29:22 | 只看该作者
holley2008 发表于 2023-9-18 14:15
我直接在服务器桌面运行的脚本,见图:

明白了,,我等会儿会更新。
回复

使用道具 举报

43#
发表于 2023-9-18 14:23:04 | 只看该作者
谢谢分享
回复

使用道具 举报

42#
发表于 2023-9-18 14:15:33 | 只看该作者
BEIKING 发表于 2023-9-18 13:36
你是什么系统环境,PE还是正常系统。
系统版本说下,还有你是记事本打开显示,还是窗口显示

我直接在服务器桌面运行的脚本,见图:

点评

【20230918】 1)优化多系统选择体验,单一系统自动打开查询,多系统提供列表选择 2)支持网卡多IP设置查询  详情 回复 发表于 2023-9-18 17:14
明白了,,我等会儿会更新。  详情 回复 发表于 2023-9-18 16:29
回复

使用道具 举报

41#
 楼主| 发表于 2023-9-18 13:36:02 | 只看该作者
holley2008 发表于 2023-9-18 12:03
我获取的结果是这样?

你是什么系统环境,PE还是正常系统。
系统版本说下,还有你是记事本打开显示,还是窗口显示

点评

我直接在服务器桌面运行的脚本,见图:[attachimg]531853[/attachimg]  详情 回复 发表于 2023-9-18 14:15
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-25 01:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表