我目前正在研究一個項目,其中我(除其他之外)需要找到遠程計算機的MAC地址。問題是,我被限制只能通過SQL查詢訪問計算機。 (所以我不能使用WMI)如何從MSSQL服務器2000獲取MAC地址
遠程計算機運行的是Windows Server 2000和MS SQL Server 2000中
我知道遠程計算機的IP,我能夠與管理員登錄帳戶。我怎樣才能從遠程計算機獲得MAC地址(最好是所有的)?
感謝您的回答。
我目前正在研究一個項目,其中我(除其他之外)需要找到遠程計算機的MAC地址。問題是,我被限制只能通過SQL查詢訪問計算機。 (所以我不能使用WMI)如何從MSSQL服務器2000獲取MAC地址
遠程計算機運行的是Windows Server 2000和MS SQL Server 2000中
我知道遠程計算機的IP,我能夠與管理員登錄帳戶。我怎樣才能從遠程計算機獲得MAC地址(最好是所有的)?
感謝您的回答。
我解決它爲我的電腦
//不介意的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與幫助格式化和字節/十六進制轉換
根據this,它似乎並不可以。如果您使用的是SQL Server 2005+,那麼我認爲您可以在SQLCLR中編寫一些代碼,而無需太多工作。
我認爲某種通過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}
項下,但如果和這裏將是硬件配置而定。
我會試試看看它是否有效。我會稍後再回來看看。 –
不幸的是,xp_cmdshell已停用,因此我無法做到 –
這就是我在所有教程中發現的情況,但似乎由於某種原因,沒有任何網絡適配器的「NetworkAddress」鍵。沒有其他值看起來像MAC地址。 –
注意:我能夠通過SQL訪問遠程計算機上的Windows註冊表。是否有包含MAC的任何鍵/值的靜態路徑? –