首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在C# .NET中检查静态或动态IP地址?

是否在C# .NET中检查静态或动态IP地址?
EN

Stack Overflow用户
提问于 2009-05-20 21:51:47
回答 5查看 10.2K关注 0票数 2

我正在建立一个非常基本的表单应用程序。

我可以获得本地计算机上可用的IP地址列表。但是,我还想确定如何获得这些地址(例如DHCP或静态)。如何判断系统上是否配置了静态IP地址?

其目的是通知新手最终用户(他们可能不知道网络设置或如何获取网络设置)哪些静态IP地址可用。如果不存在静态地址,则通知他们需要设置一个静态地址。

提亚

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-05-20 22:14:50

不幸的是,您可能不得不使用WMI。可能还有其他办法,但这是我唯一知道的办法。

这段代码将输出有关系统上每个适配器的所有信息。我想您想要的属性的名称是"DHCPEnabled“。

代码语言:javascript
复制
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));
     }
}
票数 1
EN

Stack Overflow用户

发布于 2014-02-14 16:09:03

更好地使用Net.NetworkInformation,因为与WMI相比性能更好。

代码语言:javascript
复制
    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;
        }
    }
票数 15
EN

Stack Overflow用户

发布于 2009-05-20 22:03:11

您可以使用WMI获取网络适配器配置。

举个例子,看看http://www.codeproject.com/KB/system/cstcpipwmi.aspx。网络适配器上的'DhcpEnabled‘属性应该告诉您地址是否通过dhcp获得。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/890449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档