簡體   English   中英

在 C# 中格式化 IP 地址

[英]Formatting IP address in C#

我使用這個hostInfo.AddressList來獲取機器 IP 地址。 它以字母格式返回它,例如ff80::c9c9:b2af:aa0f:e2d2%12 ,我想要的是將其格式化為IP地址格式(數字)。

我正在使用 C#、.net 3.5。

您提供的格式是表示 IPv6 地址的正確方法。 不存在表示 IPv6 地址的 ABCD 格式。

發生的事情是您獲得了 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";
}

一種 ip 地址格式,特別是 IPv6 IP 地址。 聽起來您想要一個 IPv4 地址,但是如果不知道您的網絡是如何配置的,則無法將 IPv6 地址向下轉換為 IPv4 地址。

如果你的主機有 v6 地址,我建議你堅持使用它。 您當然不應該嘗試在應用程序級別對地址進行下轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM