查找本地服务器的IP地址

时间:2011-02-22 17:29:10

标签: c# .net networking ip-address

我想动态检索本地网络上服务器(或多个服务器)的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。

3 个答案:

答案 0 :(得分:1)

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

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

如果我没记错的话,您可以使用LDAP查询域控制器 - 只要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

答案 1 :(得分:0)

This可让您按名称获取计算机的IP地址。那是你在找什么?

答案 2 :(得分:0)

您是否看过Apple的Bonjour(Zeroconf)等发现协议。 http://en.wikipedia.org