以下是使用WMI查找分配給服務器上所有NIC的所有IP的一些代碼。您可以查看Win32_NetworkAdapterConfiguration
表here中可用的其他字段。
請注意,這可能不夠快,無法從網頁直播。我有類似的工作,但我有一個計劃的任務去每天與我所有的服務器進行一次談話。然後網頁只讀取數據庫中的信息。
另請注意,此代碼假定當前用戶在遠程服務器上有足夠的訪問權限。這是將其作爲計劃任務的另一個原因。您可以以管理員身份運行任務以收集數據,然後常規IIS用戶可以從數據庫讀取數據。否則,您將不得不更改IIS運行所在的用戶,以獲得足夠的權限。
// You'll need to reference "System.Management" for this to work...
var server = "your server name";
var scope = new System.Management.ManagementScope(@"\\" + server + @"\root\cimv2");
scope.Connect();
using (var searcher = new System.Management.ManagementObjectSearcher(scope,
new System.Management.ObjectQuery(
"Select Caption, IPAddress FROM Win32_NetworkAdapterConfiguration")))
{
using (var children = searcher.Get())
{
if (children.Count > 0)
{
foreach (var item in searcher.Get())
{
var nicName = item["Caption"];
var ips = item["IPAddress"] as string[];
if (ips != null)
{
Console.WriteLine(nicName);
foreach (var ip in ips)
{
Console.WriteLine(" " + ip);
}
}
}
}
}
}
爲什麼要這樣做? –
公平的問題。我的團隊管理着大量的IIS WebServers,我們正在建立一個網站來管理我們的庫存,而不是使用Excel。我們希望在每個網絡服務器上存儲每個可用IP地址的自動化方式,因此我們知道可以爲其部署多少個其他網站。 – Mlynch1985
您*可能*能夠使用WMI遠程查詢服務器的IP地址。 –