我想动态检索本地网络上服务器(或服务器)的 IP 地址。如何检索这些 IP 地址?

使用答案中的代码进行更新:

// Query for all the enabled network adapters
ManagementObjectSearcher objSearcher = new ManagementObjectSearcher(
   "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");
ManagementObjectCollection objCollection = objSearcher.Get();

// Loop through all available network interfaces
foreach (ManagementObject obj in objCollection)
{
   // List all IP addresses of the current network interface
   string[] AddressList = (string[])obj["IPAddress"];
   foreach (string Address in AddressList)
   {
      MessageBox.Show(Address);
   }
}

code source

我使用此代码,但它只返回我自己的 PC 的 IP 地址,而不是网络中的所有 IP。

最佳答案

这可能非常困难,具体取决于网络的配置。如果它只是一个 Windows 网络,并且您运行该应用程序的帐户具有管理员权限,则它会更容易一些。

最好的方法是查询您的 PDC(主域 Controller )。查看 System.DirectoryServices.ActiveDirectory 命名空间。

如果我没记错的话,您可以使用 LDAP 来查询域 Controller ——只要正确配置了 PDC!我发现这个 LDAP 查询可以帮助你:

"(&(objectCategory=computer)(|(operatingSystem=Windows Server*)(operatingSystem=Windows 2000 Server))))))"

当然,这只会查询 Windows 2000 服务器 - 您应该能够根据需要进行修改。

查看以下链接:

http://www.google.co.uk/search?gcx=c&sourceid=chrome&ie=UTF-8&q=c%23+ldap+query

关于c# - 查找本地服务器的 IP 地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5081613/

10-17 00:12