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