以下是使用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地址。 –