在C#中格式化IP地址

时间:2010-06-22 17:30:06

标签: c# ip-address

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

任何帮助?

使用c#,。net 3.5

2 个答案:

答案 0 :(得分:6)

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

您正在获取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";
}

答案 1 :(得分:4)

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

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