无忧启动论坛

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

[分享] 批处理获取目标系统IP地址

  [复制链接]
跳转到指定楼层
1#
发表于 2020-2-3 16:11:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
经常碰到很多电脑出现系统损坏甚至硬盘损坏导致不能进系统,但系统内设置的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, 下载次数: 136)
25#
发表于 昨天 14:25 | 只看该作者
谢谢分享
回复

使用道具 举报

24#
发表于 2021-11-28 12:57:17 | 只看该作者
这么好用的工具怎么不更新了,再完善下最好了。目前获取不到虚拟机的网卡信息。
回复

使用道具 举报

23#
发表于 2020-2-7 10:23:46 | 只看该作者
semiuel 发表于 2020-2-3 17:30
查了一圈百度,暂时没找到方法从目标系统的注册表获取网卡MAC地址。

高深的办法我就不懂了,我也只会用笨办法:1.找一个有网络功能的PE,启动目标电脑。2.在PE里启动网络功能后,用ipconfig /all命令获取MAC地址。
回复

使用道具 举报

22#
发表于 2020-2-5 23:44:59 来自手机 | 只看该作者
可以进pe的话随随便便就可以获取MAC地址了
回复

使用道具 举报

21#
发表于 2020-2-5 07:19:11 | 只看该作者
用带网络功能的pe去之前的机器不就知道mac地址了?
原贴链接
回复

使用道具 举报

20#
发表于 2020-2-5 00:40:19 | 只看该作者
我觉得如果系统盘拿到别的机器上,再查询目标系统的mac就没有多大意义了,因为mac地址一般是和网卡硬件对应的!
或者,你只要查询出当前机器的mac就可以了。
回复

使用道具 举报

19#
 楼主| 发表于 2020-2-4 23:34:55 | 只看该作者
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地址。
回复

使用道具 举报

18#
发表于 2020-2-4 15:41:11 | 只看该作者
感谢分享
回复

使用道具 举报

17#
发表于 2020-2-4 15:23:31 | 只看该作者
有点意思,用这个条件得是PE带CMD吧?
回复

使用道具 举报

16#
发表于 2020-2-4 13:22:50 | 只看该作者
semiuel 发表于 2020-2-3 17:30
查了一圈百度,暂时没找到方法从目标系统的注册表获取网卡MAC地址。

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

点评

我在自己这台电脑的注册表里找不到网卡的MAC地址,百度也只能找到修改MAC地址的帖子。 相关的帖子我看了一些,都是添加一个MAC地址,而不是修改。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{  详情 回复 发表于 2020-2-4 23:34
回复

使用道具 举报

15#
 楼主| 发表于 2020-2-4 12:17:07 | 只看该作者
cybersempron 发表于 2020-2-3 23:51
从目标电脑获取MAC地址倒是好弄呀,无论你什么系统,系统安装100次,MAC地址也是一样的呀(假如只有一块网 ...

请大神帮忙理一下该怎么用批处理获取MAC地址
但纠正一点,是“目标系统”而不是“目标电脑”
也就是说可能是这样的情况:
一块包含系统的硬盘拿到不同的电脑上,获取到的MAC地址都应该是目标系统的那个MAC地址。
回复

使用道具 举报

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

点评

请大神帮忙理一下该怎么用批处理获取MAC地址 但纠正一点,是“目标系统”而不是“目标电脑” 也就是说可能是这样的情况: 一块包含系统的硬盘拿到不同的电脑上,获取到的MAC地址都应该是目标系统的那个MAC地址。  详情 回复 发表于 2020-2-4 12:17
回复

使用道具 举报

13#
发表于 2020-2-3 22:00:21 | 只看该作者

这个很有用,谢谢分享。
回复

使用道具 举报

12#
发表于 2020-2-3 18:48:23 | 只看该作者
这个是非常实用的工具,谢谢楼主分享!希望能继续更新完善!!
回复

使用道具 举报

11#
 楼主| 发表于 2020-2-3 17:30:53 | 只看该作者
查了一圈百度,暂时没找到方法从目标系统的注册表获取网卡MAC地址。

点评

高深的办法我就不懂了,我也只会用笨办法:1.找一个有网络功能的PE,启动目标电脑。2.在PE里启动网络功能后,用ipconfig /all命令获取MAC地址。  详情 回复 发表于 2020-2-7 10:23
有的,前阵子我因为要改网卡的MAC地址(Windows 7系统),简单研究过,两种方法来实现,一种是用厂家工具修改网卡硬件的MAC地址(修改后在任何系统或网卡拿到别的电脑都有效,也就是说这种方法影响到了硬件),一种  详情 回复 发表于 2020-2-4 13:22
回复

使用道具 举报

10#
 楼主| 发表于 2020-2-3 17:22:12 | 只看该作者

ipconfig只能获取到本机网卡信息
回复

使用道具 举报

9#
发表于 2020-2-3 17:14:51 | 只看该作者
感谢分享
回复

使用道具 举报

8#
发表于 2020-2-3 17:05:25 | 只看该作者
这个很有用,谢谢分享。
回复

使用道具 举报

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

ipconfig /all

点评

ipconfig只能获取到本机网卡信息  详情 回复 发表于 2020-2-3 17:22
回复

使用道具 举报

6#
 楼主| 发表于 2020-2-3 16:47:51 | 只看该作者
本帖最后由 semiuel 于 2020-2-3 17:00 编辑

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

点评

ipconfig /all  详情 回复 发表于 2020-2-3 17:01
回复

使用道具 举报

5#
发表于 2020-2-3 16:46:12 | 只看该作者
本帖最后由 心零 于 2020-2-3 16:48 编辑
wych12 发表于 2020-2-3 16:42
如何加,恳请老师指点下!谢谢!!!
我是菜鸟!!
百度搜索:获取MAC地址


回复

使用道具 举报

4#
发表于 2020-2-3 16:43:32 | 只看该作者
不是很明白,跟着你们学习了。
回复

使用道具 举报

3#
发表于 2020-2-3 16:42:18 | 只看该作者
心零 发表于 2020-2-3 16:31
还得加上获取MAC,碰到过内网静态IP+MAC绑定上网的。

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

如何加,恳请老师指点下!谢谢!!!

点评

百度搜索:获取MAC地址  详情 回复 发表于 2020-2-3 16:46
回复

使用道具 举报

2#
发表于 2020-2-3 16:31:08 | 只看该作者
还得加上获取MAC,碰到过内网静态IP+MAC绑定上网的。

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

不过这种情况几年都碰不上1例。

点评

如何加,恳请老师指点下!谢谢!!!  详情 回复 发表于 2020-2-3 16:42
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 02:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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