Board logo

标题: [网络工具] 批处理获取多网卡系统中指定网络连接对应的IP地址 [打印本页]

作者: Batcher    时间: 2014-9-30 17:46     标题: 批处理获取多网卡系统中指定网络连接对应的IP地址

  1. @echo off
  2. REM 设置网络适配器的名称
  3. REM 英文系统一般是:Local Area Connection
  4. REM set "AdapterName=Local Area Connection"
  5. REM 中文系统一般是:本地连接
  6. set "AdapterName=本地连接"
  7. set "FileTmp=%temp%\ipList.txt"
  8. ipconfig /all >"%FileTmp%"
  9. for /f "delims=:" %%i in ('findstr /n /c:"%AdapterName%" "%FileTmp%"') do (
  10.     set "SkipRow=%%i"
  11.     goto :DoSkip
  12. )
  13. :DoSkip
  14. for /f "tokens=2 delims=:(" %%i in ('more +%SkipRow% "%FileTmp%" ^| findstr /v "IPv6" ^|findstr "IP"') do (
  15.     set "IP=%%i"
  16.     goto :ShowResult
  17. )
  18. :ShowResult
  19. set "IP=%IP: =%"
  20. echo,%IP%
  21. pause
复制代码

作者: Linuxer    时间: 2014-9-30 18:17

沙了个发,,,,,学习专业代码写法,,
作者: locoman    时间: 2014-10-11 12:47

本帖最后由 locoman 于 2014-10-11 13:19 编辑

谢谢楼主无私分享,收藏……
您这个好像不能在WIN7中正常使用……
------------
同时,请教楼主指导,写出一个完整的BAT源码——
功能:对本机双网卡设置不同的“IP地址、子网掩码、网关地址、DNS地址”
要求:
1、至少能在WINXP和WIN7中能通用。
2、应该先判断机器中究竟实际是插的几张网卡(包括无线网卡)?因为,本机本来实际就可能插的仅有一张网卡,如果仅有一张网卡,就只是针对这一张网卡设置;如果是双网卡,就分别针对网卡1和网卡2设置。
3、设置完毕后,分别对各网卡进行一次“禁用”和“启用”操作。
-------------
如此,配合楼主您写的“获取多网卡IP地址”,不就是一套完美的工具了吗。
先谢谢了!

作者: Batcher    时间: 2014-10-11 15:18

回复 3# locoman


    在我的Win7里面可以正常使用。请详细说说你遇到的问题。
作者: locoman    时间: 2014-10-11 21:47

在我的Win7里面可以正常使用。请详细说说你遇到的问题。
Batcher 发表于 2014-10-11 15:18 [/quote]
这是楼主代码在我WIN7中运行的结果:
作者: Batcher    时间: 2014-10-11 21:52

回复 5# locoman


    把 @echo off 删掉,再执行,结果发出来。
作者: locoman    时间: 2014-10-11 22:58

回复 6# Batcher

___
晕,这论坛,92K的图片就没法上传了!应该开放到100K吧。
作者: Batcher    时间: 2014-10-12 06:03

回复 7# locoman


把 ipList.txt 这个文件压缩一下传上来,我试试。

另外,不需要截图,直接发文字就行了。
右键单击CMD窗口的标题栏->"属性"->"选项"->勾选"快速编辑模式"->然后在CMD窗口用鼠标左键选中想要拷贝的内容->在选中的内容上单击鼠标右键->粘贴到文本文件中即可
作者: locoman    时间: 2014-10-16 20:21

本帖最后由 locoman 于 2014-10-16 20:36 编辑
回复  locoman


把 ipList.txt 这个文件压缩一下传上来,我试试。

另外,不需要截图,直接发文字就 ...
Batcher 发表于 2014-10-12 06:03


我机器全盘搜索都居然没有查找到这个“ ipList.txt ” 文件! 它一般应该在哪里放着?
它是机器中本身就应该有的?还是您的BAT产生的?

作者: Batcher    时间: 2014-10-16 20:37

回复 9# locoman


是代码自动生成的,执行这个命令可以把它复制到C盘根目录:
  1. copy /y "%temp%\ipList.txt" C:\
复制代码

作者: locoman    时间: 2014-10-18 01:37

Windows IP 配置

   主机名  . . . . . . . . . . . . . : WIN7-20140823MO
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否

无线局域网适配器 无线网络连接:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Centrino(R) Wireless-N 2230
   物理地址. . . . . . . . . . . . . : 68-5D-43-F5-EA-BF
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::551a:a71e:3ed7:f550%18(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.100(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 星期五 2014年10月17日 16:48:34
   租约过期的时间  . . . . . . . . . : 星期六 2014年10月18日 3:05:19
   默认网关. . . . . . . . . . . . . : 192.168.1.1
   DHCP 服务器 . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 392715587
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-1B-8A-33-14-3C-97-0E-19-BD-BA
   DNS 服务器  . . . . . . . . . . . : 61.128.128.68
                                       61.128.192.68
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

以太网适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   物理地址. . . . . . . . . . . . . : 3C-97-0E-19-BD-BA
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

以太网适配器 Bluetooth 网络连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Bluetooth 设备(个人区域网)
   物理地址. . . . . . . . . . . . . : 68-5D-43-F5-EA-C3
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 本地连接* 12:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 isatap.{4DA69320-35B6-4DF9-BC3C-81ED569BB640}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 isatap.{A8B8532B-6317-4642-A511-39484743CD81}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #2
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
作者: Batcher    时间: 2014-10-18 11:48

回复 11# locoman


你需要把变量AdapterName的值设置为无线网络连接
作者: locoman    时间: 2014-10-18 17:11

我是笔记本,WIN7。机器里面显示有三个网络适配器:Bluetooth 网络连接、本地连接、无线网络连接。
Bluetooth 网络连接,平时没有管它;
本地连接,是固定IP,用于内部OA办公;
无线网络连接,用于公网使用。
————我测试您程序的环境:本地连接没有插上网线,无线网络连接在公网上。
------------
那么,您的批处理是无法获取没有插入网线的网卡(或者说没有连接成功的网卡),这样理解对吗?,如此,还有优化的空间和必要哦。
作者: Batcher    时间: 2014-10-18 17:24

回复 13# locoman


这个代码的初衷是要获取多网卡系统中指定网络连接对应的IP地址,你的本地连接对应的网卡没插网线,代码工作非常正常,它就是这样被设计的。
你的理解是正确的,但是这个代码不会向着你说的那个方向去“优化”,你希望实现的功能不是这个代码想要表达的思想。
作者: locoman    时间: 2014-10-19 01:54

Batcher,您好,很高兴我们在网上有很好的互动,谢谢您的耐心!敬佩您的水平!

您可以帮助编写出一个完整的BAT源码——
功能:对本机双网卡设置不同的“IP地址、子网掩码、网关地址、DNS地址”
要求:
1、至少能在WINXP和WIN7中能通用。
2、应该先判断机器中究竟实际是插的几张网卡(包括无线网卡)?因为,本机本来实际就可能插的仅有一张网卡,如果仅有一张网卡,就只是针对这一张网卡设置;如果是双网卡,就分别针对网卡1和网卡2设置。
——一般的笔记本机器中可能会“Bluetooth 网络连接、本地连接、无线网络连接”三张网卡,但一般的台式机基本上只会有“两张有线网卡”,当然,也不排除含有无线网卡的。
——不能采用在程序中指定“网卡名称”去操作,因为,用户会修改网卡名称的。

3、设置完成后,应该用一个TXT配置文件保存设置,以便下一次直接读取这个TXT配置文件去完成各自网卡的设置,就再不用手工输入设置了。当然,如果,我手动改变了设置,也应该再次替换保存到TXT配置文件中去的。
4、设置完毕后(包括读取TXT配置文件进行设置),分别对各网卡进行一次“禁用”和“启用”操作。
作者: ads350668398    时间: 2014-10-19 11:43

咳 咳
发个广告 http://www.bathome.net/thread-32516-1-1.html
作者: Batcher    时间: 2014-10-19 13:24

回复 15# locoman


http://bbs.bathome.net/thread-32428-1-1.html
这个可能更适合你
作者: zhiweiloli    时间: 2015-3-16 18:07

回复 1# Batcher


    试用了你的这个代码获取的网卡IP只是ipList这个文件中的最后一个网卡的IP
比如  本地连接(1.1.1.1)       本地连接 2(1.1.1.2)     本地连接 3(1.1.1.3)    这三个网卡配置了不同的IP地址
使用你的脚本获取的三个网卡的地址都是相同的(1.1.1.3),IP都是在ipList.txt这个文件中最后一个出现的IP
有没有办法可以分别获取三个网卡的IP地址
作者: Batcher    时间: 2015-3-16 18:17

回复 18# zhiweiloli


set "AdapterName=本地连接"
第6行这里修改过了吗?
作者: zhiweiloli    时间: 2015-3-17 09:08

回复 19# Batcher

网卡的名称已经修改过,我有一个无线网卡(无线网络连接)虚拟出两个虚拟无线网卡(无线网络连接 2    无线网络连接 3)有限网卡,VMware虚拟网卡,蓝牙
我要获取无线网卡(无线网络连接)的IP地址是可以的,但是要获取虚拟的无线网卡的IP(无线网络连接 2)也是显示的无线网络连接的IP
应该是和你的for循环有关,搜索了三次但是只输出了一次
下面是我用的批处理和ipList

@echo off
REM 设置网络适配器的名称
REM 英文系统一般是:Local Area Connection
REM set "AdapterName=Local Area Connection"
REM 中文系统一般是:本地连接
set "AdapterName=无线网络连接"

set "FileTmp=%temp%\ipList.txt"
ipconfig /all >"%FileTmp%"
for /f "delims=:" %%i in ('findstr /n /c:"%AdapterName%" "%FileTmp%"') do (
    set "SkipRow=%%i"
    goto oSkip
)

:DoSkip
for /f "tokens=2 delims=" %%i in ('more +%SkipRow% "%FileTmp%" ^| findstr /v "IPv6" ^|findstr "IP"') do (
    set "IP=%%i"
    goto :ShowResult
)

:ShowResult
set "IP=%IP: =%"
echo,%AdapterName%:%IP%
pause


-------------------------------------------------------下面是ipList.txt--------------------------------------------------------------------

IPlist文件(已经删除MAC)

Windows IP 配置

   主机名  . . . . . . . . . . . . . :
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否

无线局域网适配器 无线网络连接 3:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter #2
   物理地址. . . . . . . . . . . . . :
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 无线网络连接 2:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter
   物理地址. . . . . . . . . . . . . :
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 无线网络连接:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Dual Band Wireless-N 7260
   物理地址. . . . . . . . . . . . . :
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . :
   IPv4 地址 . . . . . . . . . . . . : 111.195.*.*(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.252.0
   获得租约的时间  . . . . . . . . . : 2015年3月16日 16:59:32
   租约过期的时间  . . . . . . . . . : 2015年3月16日 18:02:44
   默认网关. . . . . . . . . . . . . : 111.195.*.*
   DHCP 服务器 . . . . . . . . . . . : 111.195.*.*
   DHCPv6 IAID . . . . . . . . . . . :
   DHCPv6 客户端 DUID  . . . . . . . :
   DNS 服务器  . . . . . . . . . . . : 202.106.*.*
                                       202.106.*.*
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

以太网适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Ethernet Connection I218-LM
   物理地址. . . . . . . . . . . . . :
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1
   物理地址. . . . . . . . . . . . . : 00-50-56-C0-00-01
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::bcd7:dd8f:1a86:8dd2%24(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.160.1(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :
   DHCPv6 IAID . . . . . . . . . . . : 385896534
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-1C-95-CD-C7-48-51-B7-70-B7-FA
   DNS 服务器  . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
   物理地址. . . . . . . . . . . . . : 00-50-56-C0-00-08
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::1026:29a4:ae81:b8b9%25(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.87.1(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :
   DHCPv6 IAID . . . . . . . . . . . : 419450966
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-1C-95-CD-C7-48-51-B7-70-B7-FA
   DNS 服务器  . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

隧道适配器 isatap.{ED03B2D7-1759-40E0-861B-B98E646081BE}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 isatap.{67A5A86B-A906-4A28-B34F-DF68C51D586A}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #3
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 Teredo Tunneling Pseudo-Interface:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   IPv6 地址 . . . . . . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . :  
   默认网关. . . . . . . . . . . . . :
   TCPIP 上的 NetBIOS  . . . . . . . : 已禁用

隧道适配器 isatap.{C0D3467A-2AE4-4A78-B3D8-ECFA317163C0}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #4
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 isatap.{D6364C01-A334-4F37-9BCA-F0A7A7CD991B}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #5
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 isatap.{21ADE2CA-A673-47B5-B4E6-14D12FF83E79}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #6
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 6TO4 Adapter:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft 6to4 Adapter
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   IPv6 地址 . . . . . . . . . . . . :
   默认网关. . . . . . . . . . . . . :
   DNS 服务器  . . . . . . . . . . . :
                                       
   TCPIP 上的 NetBIOS  . . . . . . . : 已禁用

隧道适配器 isatap.{A5F3CB37-A668-4B2C-A4B9-C39E968D5FF5}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #7
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
作者: Batcher    时间: 2015-3-17 10:23

回复 20# zhiweiloli


    你的 ipconfig /all 命令结果里面"无线网络连接 2"没有IP地址,所以获取不到。
作者: zhiweiloli    时间: 2015-3-17 14:44

回复 21# Batcher


    配置了IP一样不行获取的总是最后一个   IP
作者: Batcher    时间: 2015-3-17 15:00

回复 22# zhiweiloli


    配置IP之后得到的ipList.txt发出来
作者: zhiweiloli    时间: 2015-3-18 14:23

回复 23# Batcher


    无线网络连接 2和无线网络连接 3是虚拟网卡,不知道从哪出来的,配置了静态IP以后不知道为啥用ipconfig /all还是无法显示IP。现在我遇到的问题对实际使用没有影响,非常感谢您的回复。
作者: oldminyu    时间: 2020-6-2 16:06

这个bat不好写,因为可变性太多了。比如安装了虚拟机 网卡名称改变 或者重复名称 等等 不好判断。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2