我正在以 int 格式从数据库中读取 IP 地址编号,但我想以 IP 格式显示它们,例如 000.000.000.000
是否可以使用 String.Format 方法?
例如:
string str = String.Format("{0:#,###,###.##}", ips);
我正在以 int 格式从数据库中读取 IP 地址编号,但我想以 IP 格式显示它们,例如 000.000.000.000
是否可以使用 String.Format 方法?
例如:
string str = String.Format("{0:#,###,###.##}", ips);
如果您使用 System.Net 命名空间中的 IPAddress 对象来解析您的地址,如下所示:
IPAddress ip = IPAddress.Parse(IPStringHere);
然后对该对象使用“ToString()”方法:
string outputString = ip.ToString();
您可以获得一个字符串,该字符串显示以您需要的格式提供的 IP 地址,使用整数和句号。
IPAddress 解析例程将采用字符串 IP 地址,它还将采用 int/long int 格式地址,也允许您解析这两种格式。
作为奖励,如果您使用“TryParse”并将转换放入 if 块中,您还可以在返回字符串之前测试输入格式是否导致正确的 IP 地址,便于输入验证。
这些 32 位整数是否分别代表整个 IP 地址?如果是这样...
IPAddress ip = new IPAddress((long)ips);
return ip.ToString();
(我不知道为什么构造函数需要很长时间,如果超出 UInt32 的范围,它会抛出异常,所以我认为 UInt32 会更合适。)
我来寻找相同的答案..但看到没有我写我自己。
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 格式..没关系,不知道你会怎么做....
像这样的东西?
.Net 4.0
string str = string.Join(".", ips.Select(x => x.ToString()))
早些时候
string str = string.Join(".", ips.Select(x => x.ToString()).ToArray())
这就是说,在两者之间加入一个string[]
with .
。该数组由ips组成,使用转换为字符串ToString()
并使用转换为字符串[]ToArray()
如果是数组:
string str = String.Format("{0:###}.{1:###}.{2:###}.{3:###}", ips[0], ips[1], ips[2], ips[3]);