0

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

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

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

感谢您的回答。

4

3 回答 3

1

我认为通过某种外部呼叫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}

关键,但是否和在哪里将取决于硬件配置。

于 2013-08-07T11:16:31.283 回答
0

根据这个,似乎你不能。如果您使用的是 SQL Server 2005+,我认为您可以在 SQLCLR 中编写一些代码来执行此操作而无需太多努力。

于 2013-08-07T11:06:42.423 回答
0

I solved it for my computer

//dont mind the makeQuery and 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]);

This should work for other windows server 2000 servers

Thanks to @morgano for help with the formating and byte/hex converting

于 2013-08-09T09:27:45.027 回答