将字符串转换为IP地址格式

时间:2011-02-22 06:04:22

标签: c# string.format

我正在以int格式从数据库中读取IP地址编号,但我想显示它们 采用IP格式,如000.000.000.000

是否可以使用String.Format方法?

例如:

string str = String.Format("{0:#,###,###.##}", ips); 

5 个答案:

答案 0 :(得分:13)

不是故意的,但这可以解决问题。

IPAddress ip = IPAddress.Parse(IPStringHere);

答案 1 :(得分:2)

这些32位整数是否都代表整个IP地址?如果是的话......

IPAddress ip = new IPAddress((long)ips);
return ip.ToString();

(我不知道为什么构造函数需要很长时间,如果超出UInt32的范围会抛出异常,所以在我看来UInt32会更合适。)

答案 2 :(得分:0)

这样的事情?
.Net 4.0

string str = string.Join(".", ips.Select(x => x.ToString()))

<强>早些时候

string str = string.Join(".", ips.Select(x => x.ToString()).ToArray())

这就是说,在string[]之间加入.。该数组由ips组成,使用ToString()转换为字符串,并使用ToArray()

转换为字符串[]

答案 3 :(得分:0)

如果是数组:

string str = String.Format("{0:###}.{1:###}.{2:###}.{3:###}", ips[0], ips[1], ips[2], ips[3]);

答案 4 :(得分:0)

我来找同样的答案..但是看到我不写自己。

private string padIP(string ip)
{
    string output = string.Empty;
    string[] parts = ip.Split('.');
    for (int i = 0; i < parts.Length; i++)
    {
        output += parts[i].PadLeft(3, '0');
        if (i != parts.Length - 1)
            output += ".";
    }
    return output;
}

编辑:啊我看到int格式..没关系,不知道你会怎么做....