Board logo

标题: [求助]多网卡如何获取指定网卡的MAC地址 [打印本页]

作者: hgx126     时间: 2009-6-18 13:15    标题: [求助]多网卡如何获取指定网卡的MAC地址

我想写一批处理,获取电脑里“本地连接”所在网卡的MAC地址,也就是获取“Ethernet adapter 本地连接:”行下第四行“Physical Address”的值。需要注意的是不同的机子上可能网卡不止一个。比如我这个机子:ipconfig /all 如下:
Windows IP Configuration

        Host Name . . . . . . . . . . . . : IBM_T60_HGX
        Primary Dns Suffix  . . . . . . . :
        Node Type . . . . . . . . . . . . : Unknown
        IP Routing Enabled. . . . . . . . : Yes
        WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter 无线网络连接:

        Media State . . . . . . . . . . . : Media disconnected
        Description . . . . . . . . . . . : Intel(R) PRO/Wireless 3945ABG Network Connection
        Physical Address. . . . . . . . . : 00-13-02-A3-F9-18

Ethernet adapter 本地连接:

        Media State . . . . . . . . . . . : Media disconnected
        Description . . . . . . . . . . . : Intel(R) PRO/1000 PL Network Connection
        Physical Address. . . . . . . . . : 02-80-41-59-C7-2C

Ethernet adapter 本地连接 2:

        Media State . . . . . . . . . . . : Media disconnected
        Description . . . . . . . . . . . : VPN Virtual Network Adapter
        Physical Address. . . . . . . . . : 00-00-00-14-35-22
用以下批处理得到是最后一个网卡的MAC,。
for /f "tokens=2 delims=:" %%l in ('ipconfig /all ^| find /i "Physical Address"') do set mac=%%l
echo 本机MAC地址为:%mac%
pause
求大家帮忙,如何能得到“本地连接”网卡的MAC。
作者: hgx126     时间: 2009-6-19 06:33
高手怎么都不见了?
作者: sady2009     时间: 2009-6-19 08:36

@echo off&setlocal enabledelayedexpansion
for /f "tokens=3 delims=:. " %%l in ('ipconfig /all') do (
set /a n+=1
if "%%l"=="本地连接" (set flag=1&set n=1)
if defined flag if !n! equ 4 (echo;本机mac地址是:%%l&pause&goto :eof)
)

作者: hgx126     时间: 2009-6-20 12:56
谢谢sady2009兄。
还有一个讲求,能不能给我讲讲为什么使用”set flag=1“和”if defined flag“
假如不用这两句,如下:
if "%%l"=="本地连接" (set n=1)
if !n! equ 4 (echo;本机mac地址是:%%l)
为什么又不行?在哪种情况下就要使用”set flag=1“和”if defined flag“?
谢谢

[ Last edited by hgx126 on 2009-6-20 at 13:08 ]
作者: sady2009     时间: 2009-6-21 07:20
set flag=1 和 if defined flag  配合 保证了mac 地址指定为"本地连接"这一行出现以后的第4行mac地址.

否则显示的会是第四行的内容。
作者: hgx126     时间: 2009-6-27 03:49
谢谢