我目前正在开展一个项目,其中我(除其他事项外)需要找到远程计算机的MAC地址。问题是我被限制为只通过SQL查询访问计算机。 (所以我不能使用WMI)
远程计算机正在运行Windows Server 2000和Ms SQL server 2000。
我知道远程计算机的IP,我可以使用管理员帐户登录。如何从远程计算机获取MAC地址(最好是所有这些地址)?
感谢答案。
答案 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提供有关格式化和字节/十六进制转换的帮助