中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]多网卡如何获取指定网卡的MAC地址
作者:
标题: [求助]多网卡如何获取指定网卡的MAC地址 上一主题 | 下一主题
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『楼 主』:  [求助]多网卡如何获取指定网卡的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。

2009-6-18 13:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 2 楼』:  

高手怎么都不见了?

2009-6-19 06:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sady2009
初级用户





积分 58
发帖 60
注册 2009-2-18
状态 离线
『第 3 楼』:  


@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)
)


2009-6-19 08:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 4 楼』:  

谢谢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 ]

2009-6-20 12:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sady2009
初级用户





积分 58
发帖 60
注册 2009-2-18
状态 离线
『第 5 楼』:  

set flag=1 和 if defined flag  配合 保证了mac 地址指定为"本地连接"这一行出现以后的第4行mac地址.

否则显示的会是第四行的内容。

2009-6-21 07:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 6 楼』:  

谢谢

2009-6-27 03:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: