代码之家  ›  专栏  ›  技术社区  ›  sarsnake

用C格式化ip地址#

  •  2
  • sarsnake  · 技术社区  · 14 年前

    我用过这个 hostInfo.AddressList 获取计算机IP地址。它以字母格式返回,例如 ff80::c9c9:b2af:aa0f:e2d2%12

    我正在使用C#、.NET3.5。

    2 回复  |  直到 4 年前
        1
  •  6
  •   Brian R. Bondy    14 年前

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

    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";
    }
    
        2
  •  4
  •   JSBÕ±Õ¸Õ£Õ¹    14 年前

    那个 ip地址格式,特别是IPv6 ip地址。听起来您需要一个IPv4地址,但是IPv6地址不能在不知道网络配置的情况下向下转换为IPv4地址。

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