问题
电脑存在虚拟网卡以及真实的物理网卡,想使用bat脚本获取真正的物理网卡的IP地址
方案
可以使用wmic 如下命令各个网卡的IP地址,IPEnabled=TRUE
,表示连接上网络的网卡
wmic nicconfig where "IPEnabled=TRUE" get IPAddress, MACAddress
会输出类似如下内容
IPAddress MACAddress
{"192.168.3.1", "fe80::d056:77dd:7f50:34a"} 00:50:56:C0:00:08
{"192.168.3.210", "fe80::6528:6a39:aad3:2d6"} F8:89:3C:26:E7:04
{"192.168.3.15", "fe80::93b:e641:c696:4e1f"} 4C:D5:77:08:C1:D3
{"192.168.111.1", "fe80::8145:4e81:4370:8565"} 00:50:56:C0:00:01
根据输出的内容信息,我们可以增加筛选条件,把电脑的物理网卡的MAC地址加入筛选逻辑,这样的话,就可以去除掉虚拟网卡,类似如下命令,我的有线网卡的mac地址是F8:89:3C:26:E7:04
,无线网卡地址是:4C:D5:77:08:C1:D3
,因此我可以通过如下命令进行筛选
wmic nicconfig where "IPEnabled=TRUE and MACAddress='F8:89:3C:26:E7:04' or MACAddress='4C:D5:77:08:C1:D3'" get IPAddress, MACAddress
输出的内容如下,这就把我们的有线网卡以及无线网卡的IP地址筛选出来了
IPAddress MACAddress
{"192.168.3.210", "fe80::6528:6a39:aad3:2d6"} F8:89:3C:26:E7:04
{"192.168.3.15", "fe80::93b:e641:c696:4e1f"} 4C:D5:77:08:C1:D3
根据上面的逻辑,因此我们可以编写如下脚本进行真实的IP地址获取文章来源:https://www.toymoban.com/news/detail-613698.html
@echo off
set str=IPAddress
for /F %%i in ('wmic nicconfig where "IPEnabled=TRUE and MACAddress="F8:89:3C:26:E7:04" or MACAddress="4C:D5:77:08:C1:D3"" get IPAddress') do (
if %%i == %str% (
echo _____ _____ _____ _ _____ _ _ __ _ _____
echo / ___^| ^| ____^| / _ \ ^| ^| ^| ___^| ^| ^| ^| ^| ^| \ ^| ^| / ___^|
echo ^| ^| ^| ^|__ ^| ^| ^| ^| ^| ^| ^| ^|__ ^| ^| ^| ^| ^| \^| ^| ^| ^|
echo ^| ^| ^| __^| ^| ^| ^| ^| ^| ^| ^| __^| ^| ^| ^| ^| ^| ^|\ ^| ^| ^| _
echo ^| ^|___ ^| ^|___ ^| ^|_^| ^| ^| ^| ^| ^| ^| ^|_^| ^| ^| ^| \ ^| ^| ^|_^| ^|
echo \_____^| ^|_____^| \_____/ ^|_^| ^|_^| \_____/ ^|_^| \_^| \_____/
echo.
) else (
set commitid=%%i
goto out
)
)
:out
echo ip=%commitid:~2,-2%
echo.
注意:以上脚本只是筛选了第一个网卡,如果需要两个网卡地址都获取的话,自行按照筛选逻辑进行脚本编写即可文章来源地址https://www.toymoban.com/news/detail-613698.html
到了这里,关于window bat脚本获取想要的物理网卡的真实IP地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!