Преобразовать строку в формат IP-адреса - PullRequest
5 голосов
/ 22 февраля 2011

Я читаю номера IP-адресов из базы данных в формате int, но я хочу показать их в формате IP как 000.000.000.000

Возможно ли использовать метод String.Format?

Например ,::1005*

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

Ответы [ 5 ]

13 голосов
/ 21 января 2013

Не имею в виду могилу, но это решило бы проблему.

IPAddress ip = IPAddress.Parse(IPStringHere);
2 голосов
/ 22 февраля 2011

Являются ли эти 32-разрядные целые числа, каждый из которых представляет полный IP-адрес?Если это так ...

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

(я не знаю, почему этот конструктор занимает много времени, он выдаст исключение, если вы превысите диапазон UInt32, поэтому UInt32 будет более подходящим вмое мнение.)

0 голосов
/ 17 февраля 2012

Я искал тот же ответ .. но, видя, что нет, я пишу сам.

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;
}

edit: ах, я вижу в формате int .. не бери в голову, не уверен, как бы ты это сделалсделай это ....

0 голосов
/ 22 февраля 2011

Если это массив:

string str = String.Format("{0:###}.{1:###}.{2:###}.{3:###}", ips[0], ips[1], ips[2], ips[3]);
0 голосов
/ 22 февраля 2011

Как то так?
.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()

...