中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 多网卡下如何实现读出板载网卡MAC
« [1] [2] [3] »
作者:
标题: 多网卡下如何实现读出板载网卡MAC 上一主题 | 下一主题
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『楼 主』:  多网卡下如何实现读出板载网卡MAC

多网卡(一个板载网卡,多个外接网卡)下如何实现读出板载网卡MAC(并且每个网卡有设IP号,网卡蕊片不一样!板载网卡上网!其他网卡不接网线)(WINDOWS98/2000/XP下测试用)

   我写了段代码,但同时读出来三个.你看一下能不能实理那个效果!
@echo off
setlocal Enabledelayedexpansion
ipconfig /all >ipconfig.txt  
find "Physical Address" ipconfig.txt >phyaddr.txt
for /f "skip=1 tokens=12" %%a in (phyaddr.txt) do (
set var=%%a
if not exist \\192.168.94.27\t\testdate\winpass.log goto fail
find /i /c "!var!"  \\192.168.94.27\t\testdate\winpass.log
if not errorlevel 1 goto mac
echo !var!>>\\192.168.94.27\t\testdate\winpass.log
)
endlocal
end
:mac
cls
echo.                           The mas is used!
echo.                           The mas is used!
echo.                           The mas is used!
echo.                           The mas is used!
echo.                           The mas is used!
pause

2008-5-22 11:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  请测试后反馈:

如主板网卡默认是第一网卡:
@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /c:"Physical Address"') do set mac=%%i&goto echo
:echo
set mac=%mac:~1%
echo %mac%
pause>nul
[ Last edited by zw19750516 on 2008-5-22 at 12:36 PM ]



批处理之家新域名:www.bathome.net
2008-5-22 11:35
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 3 楼』:  谢谢

谢谢!!我们这里是做测试的,其实我的最终功能是要判断服务器上的日志文件里面有没有被测试板的板载MAC数据来判断出它是不是被测试过的主板.呵呵!有劳了,谢谢!

2008-5-22 11:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  

如板载网卡不是默认第一网卡就麻烦点:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('ipconfig /all') do (
    set /a n+=1
    set _!n!=%%i
    echo %%i|findstr /c:"IP Address">nul&&set m=!n!
)
set /a m-=2
set str=!_%m%!
set mac=%str:~-18%
echo %mac%
pause>nul
----------------------------------------------------------------------------------------------------------
&&我还是解释下这段代码吧:
   首先是将ipconfig /all所有的行都赋于数值变量,即用for读取一行就将n值加
1(初始n值为0),然后把这一行所有的字符赋值给_!n!;
   然后再在所有的数值变量也就是ipconfig /all所有行中逐行查找IP Address字
符串,如找到则将这个行号赋值给m;
   在ipconfig /all中可以看到有mac地址的行处于有IP Address字符行上面二行,
所以把m值减2;
    最后截取_%m%(m已减2)后面的18个字符即为板载网卡mac。

----------------------------------------------------------------------------------------------------------
还是用if代替findstr来提高效率:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('ipconfig /all') do (
    set str=%%i&set /a n+=1
    set _!n!=%%i
    if "!str:~8,10!"=="IP Address" set m=!n!
)
set /a m-=2
set str=!_%m%!
set mac=%str:~-18%
echo %mac%
pause>nul
[ Last edited by zw19750516 on 2008-5-22 at 11:20 PM ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 yinjie1755 分数: +2  时间:2008-5-22 15:44




批处理之家新域名:www.bathome.net
2008-5-22 12:55
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 5 楼』:  我调不出效果呀!

我调不出效果呀! "||"这个判断在WIN2000下好像用不了!请回复!谢谢!

2008-5-22 13:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  

把4楼的代码中echo off删除,再运行一边,把运行结果贴出来看看。



2008-5-22 14:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 7 楼』:  这是显示结果!

E:\>set /a m-=2

E:\>set str=!_36!

E:\>set mac=. . . . . . : Yes

E:\>echo . . . . . . : Yes 1>>mac.log

E:\>pause1>nul

2008-5-22 14:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 8 楼』:  

晕,请贴出你的ipconfig /all,我这里没有WIN2000

[ Last edited by zw19750516 on 2008-5-22 at 03:13 PM ]



批处理之家新域名:www.bathome.net
2008-5-22 15:11
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 9 楼』:  这个是我的机子上的,测试和这差不多,就是一个网卡有IP!

Windows IP Configuration



        Host Name . . . . . . . . . . . . : gc0427

        Primary Dns Suffix  . . . . . . . : evoc.local

        Node Type . . . . . . . . . . . . : Hybrid

        IP Routing Enabled. . . . . . . . : No

        WINS Proxy Enabled. . . . . . . . : No

        DNS Suffix Search List. . . . . . : evoc.local



Ethernet adapter VMware Network Adapter VMnet8:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8

        Physical Address. . . . . . . . . : 00-50-56-C0-00-08

        Dhcp Enabled. . . . . . . . . . . : No

        IP Address. . . . . . . . . . . . : 192.168.230.1

        Subnet Mask . . . . . . . . . . . : 255.255.255.0

        Default Gateway . . . . . . . . . :



Ethernet adapter VMware Network Adapter VMnet1:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1

        Physical Address. . . . . . . . . : 00-50-56-C0-00-01

        Dhcp Enabled. . . . . . . . . . . : No

        IP Address. . . . . . . . . . . . : 192.168.229.1

        Subnet Mask . . . . . . . . . . . : 255.255.255.0

        Default Gateway . . . . . . . . . :



Ethernet adapter 本地连接 7:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : Marvell Yukon 88E8040 PCI-E Fast Ethernet Controller

        Physical Address. . . . . . . . . : 00-E0-B0-F2-2F-0C

        Dhcp Enabled. . . . . . . . . . . : Yes

        Autoconfiguration Enabled . . . . : Yes

        IP Address. . . . . . . . . . . . : 192.168.94.50

        Subnet Mask . . . . . . . . . . . : 255.255.255.0

        Default Gateway . . . . . . . . . : 192.168.94.1

        DHCP Server . . . . . . . . . . . : 172.16.0.198

        DNS Servers . . . . . . . . . . . : 172.16.0.198

                                            202.96.174.66

        Primary WINS Server . . . . . . . : 172.16.0.198

        Lease Obtained. . . . . . . . . . : 2008年5月20日 16:29:43

        Lease Expires . . . . . . . . . . : 2008年5月28日 16:29:43

2008-5-22 15:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 10 楼』:  如下是本机板载网卡MAC

Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : Marvell Yukon 88E8040 PCI-E Fast Ethernet Controller

        Physical Address. . . . . . . . . : 00-E0-B0-F2-2F-0C

2008-5-22 15:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 11 楼』:  zw19750516注意一下,

我刚刚到测试机器上看了一下,那里除了板载有IP外,其它的都不会显IP.

2008-5-22 15:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 12 楼』:  

172.16.0.198这个值是固定的不
把测试的ipconfig /all 发出来,我这里的确实和你那里的有很大的不同。

[ Last edited by zw19750516 on 2008-5-22 at 03:30 PM ]



批处理之家新域名:www.bathome.net
2008-5-22 15:28
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 13 楼』:  如下

大至是这样:
Windows IP Configuration



        Host Name . . . . . . . . . . . . : gc0427

        Primary Dns Suffix  . . . . . . . : evoc.local

        Node Type . . . . . . . . . . . . : Hybrid

        IP Routing Enabled. . . . . . . . : No

        WINS Proxy Enabled. . . . . . . . : No

        DNS Suffix Search List. . . . . . : evoc.local



Ethernet adapter VMware Network Adapter VMnet8:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8

        Physical Address. . . . . . . . . : 00-50-56-C0-00-08

        Dhcp Enabled. . . . . . . . . . . : No

        IP Address. . . . . . . . . . . . :

        Subnet Mask . . . . . . . . . . . :

        Default Gateway . . . . . . . . . :



Ethernet adapter VMware Network Adapter VMnet1:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1

        Physical Address. . . . . . . . . : 00-50-56-C0-00-01

        Dhcp Enabled. . . . . . . . . . . : No

        IP Address. . . . . . . . . . . . :

        Subnet Mask . . . . . . . . . . . :

        Default Gateway . . . . . . . . . :



Ethernet adapter 本地连接 7:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : Marvell Yukon 88E8040 PCI-E Fast Ethernet Controller

        Physical Address. . . . . . . . . : 00-E0-B0-F2-2F-0C

        Dhcp Enabled. . . . . . . . . . . : Yes

        Autoconfiguration Enabled . . . . : Yes

        IP Address. . . . . . . . . . . . : 192.168.94.50

        Subnet Mask . . . . . . . . . . . : 255.255.255.0

        Default Gateway . . . . . . . . . : 192.168.94.1

        DHCP Server . . . . . . . . . . . : 172.16.0.198

        DNS Servers . . . . . . . . . . . : 172.16.0.198

                                            202.96.174.66

        Primary WINS Server . . . . . . . : 172.16.0.198

        Lease Obtained. . . . . . . . . . : 2008年5月20日 16:29:43

        Lease Expires . . . . . . . . . . : 2008年5月28日 16:29:43

2008-5-22 15:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 14 楼』:  

很好解决,把我4楼的set /a m-=2改为set /a m-=3

   此帖被 +2 点积分    点击查看详情   
评分人:【 yinjie1755 分数: +2  时间:2008-5-22 15:45




批处理之家新域名:www.bathome.net
2008-5-22 15:32
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yinjie1755
初级用户





积分 76
发帖 32
注册 2008-5-14
状态 离线
『第 15 楼』:  测试机器那里没有DHCP和DNS

测试机器那里没有DHCP和DNS.    SORRY!我是在我的办公电脑上导出的! 大至如下

Ethernet adapter 本地连接 7:



        Connection-specific DNS Suffix  . :

        Description . . . . . . . . . . . : Marvell Yukon 88E8040 PCI-E Fast Ethernet Controller

        Physical Address. . . . . . . . . : 00-E0-B0-F2-2F-0C

        IP Address. . . . . . . . . . . . : 192.168.94.50

        Subnet Mask . . . . . . . . . . . : 255.255.255.0

2008-5-22 15:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: