如何从MSSQL服务器2000获取MAC地址

时间:2013-08-07 11:01:28

标签: sql-server mac-address windows-server windows-server-2000

我目前正在开展一个项目,其中我(除其他事项外)需要找到远程计算机的MAC地址。问题是我被限制为只通过SQL查询访问计算机。 (所以我不能使用WMI)

远程计算机正在运行Windows Server 2000和Ms SQL server 2000。

我知道远程计算机的IP,我可以使用管理员帐户登录。如何从远程计算机获取MAC地址(最好是所有这些地址)?

感谢答案。

3 个答案:

答案 0 :(得分:0)

根据this,似乎没有。如果您使用的是SQL Server 2005+,我认为您可以在SQLCLR中编写代码来执行此操作而无需太多工作。

答案 1 :(得分:0)

我认为通过xp_cmdshell进行某种外部通话是您唯一的选择。您的SQL Server可能会禁用此功能(有充分的理由)。

这样的东西
 Create table #results(data varchar(250))
 Insert #results
 exec master..xp_cmdshell 'ipconfig /all'

 select * from #results where data like 'physical address%'

除了您的评论之外 - 您可以在

下的注册表中找到它
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

键,但是依赖于硬件配置的位置。

答案 2 :(得分:0)

我为我的电脑解决了它

//不介意makeQuery和querySrv

ResultTable res = makeQuery(querySrv,("USE Master; EXEC xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\\Description\\Microsoft\\rpc\\UuidTemporaryData', 'NetworkAddress'"));
    byte[] bMac =(byte[])res.getRow(0).data[1];
    String mac = String.format("%02X:%02X:%02X:%02X:%02X:%02X", bMac[0], bMac[1], bMac[2], bMac[3], bMac[4], bMac[5]);

这适用于其他Windows Server 2000服务器

感谢@morgano提供有关格式化和字节/十六进制转换的帮助