Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 默认情况下获取IPV4地址_C#_Ipv4 - Fatal编程技术网

C# 默认情况下获取IPV4地址

C# 默认情况下获取IPV4地址,c#,ipv4,C#,Ipv4,使用上面的代码片段,我试图获取运行应用程序的当前用户的IPV4地址,我的网络接口也启用了IPV6主机信息正在使用V6地址填充: fe80::d168:1665:65c:7c2e%12 在尝试获取时: 192.168.0.2 maptopv4返回: 6.92.124.46 具有: IPHostEntry HostInformation = Dns.GetHostEntry(Dns.GetHostName()); //IPAddress IP = HostInformation.AddressLis

使用上面的代码片段,我试图获取运行应用程序的当前用户的IPV4地址,我的网络接口也启用了IPV6<代码>主机信息正在使用V6地址填充:

fe80::d168:1665:65c:7c2e%12

在尝试获取时:

192.168.0.2

maptopv4
返回:

6.92.124.46

具有:

IPHostEntry HostInformation = Dns.GetHostEntry(Dns.GetHostName());
//IPAddress IP = HostInformation.AddressList[0].MapToIPv4();
Console.WriteLine(IP.ToString());
显示四个地址:

fe80::d168:1665:65c:7c2e%12

fe80::448:ff7:a313:2477%18

192.168.0.2

2001:0:5ef5:79fb:448:ff7:a313:2477


因此,使用这种逻辑,
HostInformation.AddressList[2]将包含我的结果。但是,它是否总是V4地址?数组中的第三个元素是否始终存在?所以总体来说。如何查找数组以查找V4地址并返回适当的索引

根据@500 InternalServerError的评论搜索文档后,我得出以下结论:

        foreach (var Element in HostInformation.AddressList)
        {
            Console.WriteLine(Element + "\n\n");
        }
由以下人员调用:

    public IPAddress GetIPV4(IPHostEntry HostInformation)
    {
        IPAddress[] IP = HostInformation.AddressList;
        int index = 0;
        foreach (IPAddress Address in IP)
        {
            if (Address.AddressFamily.Equals(AddressFamily.InterNetwork))
            {
                break;
            }
            index++;
        }
        return HostInformation.AddressList[index];
    }

测试并在3台机器上工作,每台机器的接口/地址从1 V4到4个地址

如果我没记错,我现在在
IPAddress
中的某个地方漏掉了一个属性的名称,该属性具有结构所代表的地址类型。@500 InternalServerError感谢headsup,我会查看文档以找到it@500-InternalServerError感谢您提供的指针。如果您对解决方案感兴趣,请检查下面的答案
IPAddress IP = GetIPV4(Dns.GetHostEntry(Dns.GetHostName()));