我正在建立一个非常基本的表单应用程序。
我可以获得本地计算机上可用的IP地址列表。但是,我还想确定如何获得这些地址(例如DHCP或静态)。如何判断系统上是否配置了静态IP地址?
其目的是通知新手最终用户(他们可能不知道网络设置或如何获取网络设置)哪些静态IP地址可用。如果不存在静态地址,则通知他们需要设置一个静态地址。
提亚
发布于 2009-05-20 22:14:50
不幸的是,您可能不得不使用WMI。可能还有其他办法,但这是我唯一知道的办法。
这段代码将输出有关系统上每个适配器的所有信息。我想您想要的属性的名称是"DHCPEnabled“。
ManagementObjectSearcher searcherNetwork =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_NetworkAdapterConfiguration");
foreach (ManagementObject queryObj in searcherNetwork.Get())
{
foreach (var prop in queryObj.Properties)
{
Console.WriteLine(string.Format("Name: {0} Value: {1}", prop.Name, prop.Value));
}
}发布于 2014-02-14 16:09:03
更好地使用Net.NetworkInformation,因为与WMI相比性能更好。
using System.Net.NetworkInformation;
NetworkInterface[] niAdpaters = NetworkInterface.GetAllNetworkInterfaces();
private Boolean GetDhcp(Int32 iSelectedAdpater)
{
if (niAdpaters[iSelectedAdpater].GetIPProperties().GetIPv4Properties() != null)
{
return niAdpaters[iSelectedAdpater].GetIPProperties().GetIPv4Properties().IsDhcpEnabled;
}
else
{
return false;
}
}发布于 2009-05-20 22:03:11
您可以使用WMI获取网络适配器配置。
举个例子,看看http://www.codeproject.com/KB/system/cstcpipwmi.aspx。网络适配器上的'DhcpEnabled‘属性应该告诉您地址是否通过dhcp获得。
https://stackoverflow.com/questions/890449
复制相似问题