qq_37042788 2023-10-06 14:31 采纳率: 0%
浏览 6

initalnetworkinterface查询ip地址

当遇到自动分配地址的网口时会报错。怎么判断是否自动分配。报错显示索引超出范围

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-10-06 16:57
    关注

    引自强大而免费的微信小程序:皆我百晓生。


    在C#中,可以使用NetworkInterface.GetAllNetworkInterfaces()方法来获取所有的网络接口,并通过NetworkInterface.NetworkInterfaceType属性来判断接口是否是以太网接口。对于以太网接口,可以使用NetworkInterface.GetIPProperties().GetIPv4Properties().IsDhcpEnabled属性来判断是否启用了DHCP自动分配IP地址。

    以下是一个示例代码,演示如何获取以太网接口的IP地址:

    using System;
    using System.Net.NetworkInformation;
    
    public class Program
    {
        public static void Main(string[] args)
        {
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            
            foreach (NetworkInterface adapter in interfaces)
            {
                // 判断是否是以太网接口
                if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
                {
                    IPInterfaceProperties properties = adapter.GetIPProperties();
                    
                    // 判断是否启用了DHCP自动分配IP地址
                    if (properties.GetIPv4Properties().IsDhcpEnabled)
                    {
                        foreach (UnicastIPAddressInformation ip in properties.UnicastAddresses)
                        {
                            // 获取IPv4地址
                            if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                            {
                                Console.WriteLine("IPv4 Address: " + ip.Address.ToString());
                            }
                        }
                    }
                }
            }
        }
    }
    

    在上述代码中,首先使用NetworkInterface.GetAllNetworkInterfaces()方法获取所有的网络接口。然后遍历每个接口,通过判断NetworkInterface.NetworkInterfaceType是否为以太网接口,再通过NetworkInterface.GetIPProperties().GetIPv4Properties().IsDhcpEnabled属性判断是否启用了DHCP自动分配IP地址。如果是,则通过UnicastIPAddressInformation.Address获取IPv4地址,最后打印出来。

    注意:在运行该代码前,请确保以管理员权限运行,否则无法获取网络接口信息。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月6日