无忧启动论坛

标题: 批处理获取目标系统IP地址 [打印本页]

作者: semiuel    时间: 2020-2-3 16:11
标题: 批处理获取目标系统IP地址
经常碰到很多电脑出现系统损坏甚至硬盘损坏导致不能进系统,但系统内设置的IP地址是静态地址。
只要目标系统的注册表文件SOFTWARE和SYSTEM没损坏,就可以用这个批处理在PE里获取到目标系统的IP地址,只需要用到REG.EXE运行后会在批处理所在目录生成一个Ipinfo.txt保存相关信息。

  1. @echo off 2>nul 3>nul
  2. setlocal enabledelayedexpansion
  3. set /p Input=输入要查询的系统安装盘符[例如D]:
  4. if /i "%Input%:" neq "%systemDrive%" (
  5.     for %%a in (software system) do (
  6.         if not exist "%Input%:\Windows\System32\config\%%a" echo,输错啦&pause & exit/b
  7.     )
  8.     reg load HKLM\Temp_HIV1 %Input%:\Windows\System32\config\software >nul
  9.     reg load HKLM\Temp_HIV2 %Input%:\Windows\System32\config\system >nul
  10.     call :GetIPInfo Temp_HIV1 Temp_HIV2
  11.     reg unload HKLM\Temp_HIV1 >nul
  12.     reg unload HKLM\Temp_HIV2 >nul
  13. ) else call :GetIPInfo SOFTWARE SYSTEM
  14. start "" "%~dp0IPInfo.txt" & exit/b

  15. :GetIPInfo
  16. for /f "tokens=1,2*" %%a in ('reg query "HKLM\%2\select"') do (
  17.     if /i "%%a" == "Default" set /a x=%%c
  18. )
  19. set "v1=Microsoft\Windows NT\CurrentVersion\NetworkCards"
  20. set "v2=ControlSet00%x%\Control\Network"
  21. set "v3=ControlSet00%x%\services\Tcpip\Parameters"
  22. set "s=EnableDHCP NameServer IPAddress SubnetMask DefaultGateway"
  23. set "s=%s% DHCPNameServer DHCPIPAddress DHCPSubnetMask DHCPDefaultGateway"

  24. for /f "delims=" %%a in ('reg query "HKLM\%1\%v1%"') do (
  25.     set "v=%%a"
  26.     if "!v:%v1%\=!" neq "!v!" (
  27.         set /a n+=1
  28.         for /f "tokens=1,2*" %%b in ('reg query "%%a"') do (
  29.             if /i "%%b" == "ServiceName" (
  30.                 set "Guid!n!=%%d"
  31.             ) else if /i "%%b" == "Description" set "NetCard!n!=%%d"
  32.         )
  33.     )
  34. )
  35. if not defined n echo,找不到网卡&pause & exit

  36. (for /f "tokens=1,2*" %%a in ('reg query "HKLM\%2\%v3%"') do (
  37.     if /i "%%a" == "Domain" (
  38.         if "%%c" neq "" (echo,域名名称:%%c)else echo,域名名称:^<nul^>
  39.     ) else if /i "%%a" == "HostName" echo,主机名称:%%c
  40. ))>"%~dp0IPInfo.txt"

  41. for %%a in (%s%) do set "_%%a=1"
  42. (for /l %%a in (1 1 %n%) do (
  43.     echo,&echo,网卡名称:!NetCard%%a!
  44.     for %%b in (%s%) do set "%%b="
  45.     for /f "delims=" %%b in ('reg query "HKLM\%2\%v2%" /s') do (
  46.         if defined flag (
  47.             for /f "tokens=1,2*" %%c in ("%%b") do (
  48.                 if /i "%%c" == "Name" echo,连接名称:%%e& set "flag="
  49.             )
  50.         ) else (
  51.             set "v=%%b"
  52.             for %%c in ("\!Guid%%a!") do if "!v:%%~c=!" neq "!v!" set flag=1
  53.         )
  54.     )
  55.     for /f "tokens=1,2*" %%b in ('reg query "HKLM\%2\%v3%\Interfaces\!Guid%%a!"') do (
  56.         if defined _%%b if "%%d" neq "" set "v=%%d" & set "%%b=!v:\0=!"
  57.     )
  58.     if /i "!EnableDHCP!" == "0x1" (
  59.         echo,IP 模 式:动态获取
  60.         echo,IP 地 址:!DHCPIPAddress!
  61.         echo,子网掩码:!DHCPSubnetMask!
  62.         echo,默认网关:!DHCPDefaultGateway!
  63.         echo,DNS 地址:!DHCPNameServer!
  64.     ) else (
  65.         echo,IP 模 式:静态设置
  66.         echo,IP 地 址:!IPAddress!
  67.         echo,子网掩码:!SubnetMask!
  68.         echo,默认网关:!DefaultGateway!
  69.         echo,DNS 地址:!NameServer!
  70.     )
  71. ))>>"%~dp0IPInfo.txt"
复制代码


下载地址:
获取目标系统IP地址.zip (1.25 KB, 下载次数: 139)

作者: 心零    时间: 2020-2-3 16:31
还得加上获取MAC,碰到过内网静态IP+MAC绑定上网的。

更恐怖的是还有部分老企业有IE的用局域网LAN设置。

不过这种情况几年都碰不上1例。
作者: wych12    时间: 2020-2-3 16:42
心零 发表于 2020-2-3 16:31
还得加上获取MAC,碰到过内网静态IP+MAC绑定上网的。

更恐怖的是还有部分老企业有IE的用局域网LAN设置。 ...

如何加,恳请老师指点下!谢谢!!!
作者: brettwand    时间: 2020-2-3 16:43
不是很明白,跟着你们学习了。
作者: 心零    时间: 2020-2-3 16:46
本帖最后由 心零 于 2020-2-3 16:48 编辑
wych12 发表于 2020-2-3 16:42
如何加,恳请老师指点下!谢谢!!!
我是菜鸟!!
百度搜索:获取MAC地址



作者: semiuel    时间: 2020-2-3 16:47
本帖最后由 semiuel 于 2020-2-3 17:00 编辑

大神们帮忙研究一下看批处理怎么获取网卡MAC地址,然后添加到批处理里面。
首先,要尽量少用外部命令,适应跟版本的PE;
第二,要从目标系统的注册表获取,而不是从本机获取
第三,要考虑到多网卡

作者: 都市浪子666    时间: 2020-2-3 17:01
semiuel 发表于 2020-2-3 16:47
大神们帮忙研究一下看批处理怎么获取网卡MAC地址,然后添加到批处理里面。
首先,要尽量少用外部命令,适 ...

ipconfig /all
作者: 2010pzhg    时间: 2020-2-3 17:05
这个很有用,谢谢分享。
作者: 2012andyle113    时间: 2020-2-3 17:14
感谢分享
作者: semiuel    时间: 2020-2-3 17:22
都市浪子666 发表于 2020-2-3 17:01
ipconfig /all

ipconfig只能获取到本机网卡信息
作者: semiuel    时间: 2020-2-3 17:30
查了一圈百度,暂时没找到方法从目标系统的注册表获取网卡MAC地址。
作者: qq952290709    时间: 2020-2-3 18:48
这个是非常实用的工具,谢谢楼主分享!希望能继续更新完善!!
作者: ljmmjl    时间: 2020-2-3 22:00

这个很有用,谢谢分享。
作者: cybersempron    时间: 2020-2-3 23:51
从目标电脑获取MAC地址倒是好弄呀,无论你什么系统,系统安装100次,MAC地址也是一样的呀(假如只有一块网卡),通俗说一句,MAC地址就是网卡地址呀,你系统怎么坏,只要网卡不坏,就可以轻易得到MAC地址呀,这个比获取静态IP容易多了。
作者: semiuel    时间: 2020-2-4 12:17
cybersempron 发表于 2020-2-3 23:51
从目标电脑获取MAC地址倒是好弄呀,无论你什么系统,系统安装100次,MAC地址也是一样的呀(假如只有一块网 ...

请大神帮忙理一下该怎么用批处理获取MAC地址
但纠正一点,是“目标系统”而不是“目标电脑”
也就是说可能是这样的情况:
一块包含系统的硬盘拿到不同的电脑上,获取到的MAC地址都应该是目标系统的那个MAC地址。
作者: 2013lirunext    时间: 2020-2-4 13:22
semiuel 发表于 2020-2-3 17:30
查了一圈百度,暂时没找到方法从目标系统的注册表获取网卡MAC地址。

有的,前阵子我因为要改网卡的MAC地址(Windows 7系统),简单研究过,两种方法来实现,一种是用厂家工具修改网卡硬件的MAC地址(修改后在任何系统或网卡拿到别的电脑都有效,也就是说这种方法影响到了硬件),一种是修改系统注册表(在别的系统/重装系统或网卡拿到别的电脑,MAC地址都会恢复出厂值,也就是说注册表的修改没有影响到网卡硬件)。注册表的话隐约记得是先找到“本地连接”对应的注册表,然后新建一个项,把这个项的值修改为要设置的MAC地址,注销或重启生效。由于是在台式机搞的,现在带笔记本回家了,资料一时找不到,等找到了再回复了。
要注意的是某些特殊情况,有的电脑可能有多个网卡,分别对应“本地连接1”、“本地连接2”、“本地连接3”,可能需要做些判断/处理,不然在有多个网卡的机器,就获取不到或者出现其它bug(个人猜测,说错勿怪)
作者: edit009    时间: 2020-2-4 15:23
有点意思,用这个条件得是PE带CMD吧?
作者: mimi820    时间: 2020-2-4 15:41
感谢分享
作者: semiuel    时间: 2020-2-4 23:34
2013lirunext 发表于 2020-2-4 13:22
有的,前阵子我因为要改网卡的MAC地址(Windows 7系统),简单研究过,两种方法来实现,一种是用厂家工具 ...

我在自己这台电脑的注册表里找不到网卡的MAC地址,百度也只能找到修改MAC地址的帖子。
相关的帖子我看了一些,都是添加一个MAC地址,而不是修改。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

这个键值下面的0000-00xx里其中一项或几项对应网卡,但也没在里面找到MAC地址。
作者: 2010sya    时间: 2020-2-5 00:40
我觉得如果系统盘拿到别的机器上,再查询目标系统的mac就没有多大意义了,因为mac地址一般是和网卡硬件对应的!
或者,你只要查询出当前机器的mac就可以了。

作者: 窄口牛    时间: 2020-2-5 07:19
用带网络功能的pe去之前的机器不就知道mac地址了?
原贴链接

作者: ybshfhllj    时间: 2020-2-5 23:44
可以进pe的话随随便便就可以获取MAC地址了
作者: cybersempron    时间: 2020-2-7 10:23
semiuel 发表于 2020-2-3 17:30
查了一圈百度,暂时没找到方法从目标系统的注册表获取网卡MAC地址。

高深的办法我就不懂了,我也只会用笨办法:1.找一个有网络功能的PE,启动目标电脑。2.在PE里启动网络功能后,用ipconfig /all命令获取MAC地址。
作者: qq952290709    时间: 2021-11-28 12:57
这么好用的工具怎么不更新了,再完善下最好了。目前获取不到虚拟机的网卡信息。
作者: idd214    时间: 4 天前
谢谢分享




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3