none
WMIC获取指定IP地址对应的MAC时报错 RRS feed

  • 问题

  • 我的电脑(XP Pro SP2 EN)有两块物理网卡和两块虚拟网卡,想用WMIC获取指定IP地址192.168.56.1(这是其中一块虚拟网卡的IP)对应的MAC,在命令行解释器中运行这个命令:
    wmic NicConfig where "IPAddress='{"192.168.56.1"}'" get MACAddress /value

    报错信息为:
    Node - Batcher
    ERROR:
    Code = 0x80041017
    Description = Invalid query
    Facility = WMI

    初步判断是花括号里面的双引号带来的问题。因为运行下面的命令可以正确得到对应的结果(至少说明我的WMIC没问题):
    wmic NicConfig where "Index='1'" get MACAddress /value

    我尝试过对花括号里面的双引号进行转义,问题依旧:
    wmic NicConfig where "IPAddress='{\"192.168.56.1\"}'" get MACAddress /value
    wmic NicConfig where "IPAddress='{^"192.168.56.1^"}'" get MACAddress /value
    wmic NicConfig where "IPAddress='{^"192.168.56.1^"}'" get MACAddress /value
    wmic NicConfig where "IPAddress='{'"192.168.56.1"'}'" get MACAddress /value
    wmic NicConfig where "IPAddress='{""192.168.56.1""}'" get MACAddress /value
    wmic NicConfig where "IPAddress='{'"'192.168.56.1'"'}'" get MACAddress /value
    wmic NicConfig where "IPAddress='{"""192.168.56.1"""}'" get MACAddress /value

    查看过以下文档,未能找出相关描述:
    http://technet.microsoft.com/zh-cn/library/cc784189(WS.10).aspx

    请问该如何解决这个问题呢?

    2009年5月29日 17:54

答案

  • wmic nicconfig get IPAddress, MACAddress |findstr "192.168.56.1"
    另外你可以通过下面的方式获取 MAC
    cmd 命令行方式
    1.nbtstat -a 192.168.56.1
    2.ipconfig /all (其中Physical Address就是MAC地址)
    其它方式
    3.开始→所有程序→附件→系统工具→系统信息
    4.鼠标右击任务栏中托盘区中的网络连接图标(两台小电脑),点选“状态”→“支持”选项卡下的“详细信息”,其中的实际地址即为您网卡的MAC地址

    知识改变命运,奋斗成就人生!
    2009年5月29日 20:14
    版主

全部回复

  • wmic nicconfig get IPAddress, MACAddress |findstr "192.168.56.1"
    另外你可以通过下面的方式获取 MAC
    cmd 命令行方式
    1.nbtstat -a 192.168.56.1
    2.ipconfig /all (其中Physical Address就是MAC地址)
    其它方式
    3.开始→所有程序→附件→系统工具→系统信息
    4.鼠标右击任务栏中托盘区中的网络连接图标(两台小电脑),点选“状态”→“支持”选项卡下的“详细信息”,其中的实际地址即为您网卡的MAC地址

    知识改变命运,奋斗成就人生!
    2009年5月29日 20:14
    版主
  • 感谢回复。你说的这几个命令我都知道,我也知道如何把它们放到批处理中以实现自动获取MAC。
    不过这并非我的问题所在。
    我想知道当wmic命令的where子句出现顶楼这种花括号中有双引号的值时,正确的语法应该怎样写。
    多谢。
    2009年5月30日 16:40
  • 你好, 前些天测试了下 IPAddress 不支持 Where 条件, 但我不太确定
    知识改变命运,奋斗成就人生!
    2009年6月4日 12:28
    版主
  • 有其他朋友知道如何解决问题不?

    2009年6月16日 15:12
  • 获取单个网卡的IP V4地址 By Yu2n
    测试 Win7x64, XPSP3x86 下可用 ...

    :: GetIP.BAT

    @echo off
    for /f tokens^=1^,2^ delims^=^"^" %%a in ('wmic nicconfig get IPAddress /value ^| findstr /i "IPAddress=[^]"') do (set "ip=%%b")
    echo, ^^_^^ IPAddress^: %ip%
    pause

    结果如下:

    ^_^ IPAddress: 192.168.56.1
    请按任意键继续. . .


    -------------------------------------
    使用命令行获取所有网卡的所有IP:

    wmic nicconfig get IPAddress /value | findstr /i "IPAddress=[^]"

    结果如下:

    IPAddress={"192.168.199.200","fe80::fdb3:41a6:e649:2f06"}
    IPAddress={"192.168.56.1","fe80::8daa:6931:5ddf:90bd"}



    • 已编辑 Yu2n 2015年1月4日 3:34 Fix
    • 已建议为答案 jacobhEb 2018年7月18日 18:08
    2015年1月4日 3:28
  • 牛B,涨姿势了
    2018年7月18日 18:07