C# 用C语言格式化IP地址#

C# 用C语言格式化IP地址#,c#,ip-address,C#,Ip Address,我使用这个hostInfo.AddressList来获取机器的IP地址。它以字母格式返回它,例如ff80::c9c9:b2af:aa0f:e2d2%12,我想将它格式化为IP地址格式(数字) 我使用的是C#,.net 3.5。这是一种ip地址格式,特别是IPv6 ip地址。听起来您想要一个IPv4地址,但是如果不知道网络是如何配置的,就无法将IPv6地址向下转换为IPv4地址 如果您的主机有v6地址,我建议您继续使用它。您当然不应该尝试在应用程序级别下转换地址。这是一种ip地址格式,特别是IPv

我使用这个
hostInfo.AddressList
来获取机器的IP地址。它以字母格式返回它,例如
ff80::c9c9:b2af:aa0f:e2d2%12
,我想将它格式化为IP地址格式(数字)

我使用的是C#,.net 3.5。

这是一种ip地址格式,特别是IPv6 ip地址。听起来您想要一个IPv4地址,但是如果不知道网络是如何配置的,就无法将IPv6地址向下转换为IPv4地址

如果您的主机有v6地址,我建议您继续使用它。您当然不应该尝试在应用程序级别下转换地址。

这是一种ip地址格式,特别是IPv6 ip地址。听起来您想要一个IPv4地址,但是如果不知道网络是如何配置的,就无法将IPv6地址向下转换为IPv4地址


如果您的主机有v6地址,我建议您继续使用它。您当然不应该尝试在应用程序级别下转换地址。

您提供的格式是表示IPv6地址的正确方式。不存在表示IPv6地址的A.B.C.D格式

现在的情况是,您将获得IPv4和IPv6地址列表。您正在寻找IPv4

string GetFirstIPv4Address()
{
    IPAddress[] addressList = Dns.GetHostAddresses(hostname);

    foreach (IPAddress ip in addressList)
    {
        if (ip.AddressFamily.ToString() == "InterNetwork")
        {
            //This is an IPv4 address
            return ip.ToString();
        }
    }
    return "127.0.0.1";
}

您提供的格式是表示IPv6地址的正确方式。不存在表示IPv6地址的A.B.C.D格式

现在的情况是,您将获得IPv4和IPv6地址列表。您正在寻找IPv4

string GetFirstIPv4Address()
{
    IPAddress[] addressList = Dns.GetHostAddresses(hostname);

    foreach (IPAddress ip in addressList)
    {
        if (ip.AddressFamily.ToString() == "InterNetwork")
        {
            //This is an IPv4 address
            return ip.ToString();
        }
    }
    return "127.0.0.1";
}

所以基本上,在这种情况下根本没有办法获得IPv4格式?不,IPv6地址没有虚线四元组形式,因为IPv6地址不是32位的。所以基本上,在这种情况下根本没有办法获得IPv4格式?不,IPv6地址没有虚线四元组形式,因为IPv6地址不是32位的。你能发布你现在拥有的代码吗?你能发布你现在拥有的代码吗?