标题: [网络工具] 批处理获取多网卡系统中指定网络连接对应的IP地址 [打印本页]
作者: Batcher 时间: 2014-9-30 17:46 标题: 批处理获取多网卡系统中指定网络连接对应的IP地址
- @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 :DoSkip
- )
-
- :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,%IP%
- 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盘根目录:- 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 |