Проверка IP адреса на валидность, если в одном из байтов есть начальный нуль - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Считываю параметры из текстового файла, в т.ч. и IP-адрес. Столкнулся с тем, что IPAddress.Parse(string RemoteIpServer) странным образом преобразовывает String в IPAddress, если в одном из байтов начальным указан нуль (192.168.1.045). Если в одном из байтов IP-адреса нет начальных нулей, то все в порядке (192.168.1.45). Например:
string RemoteIpServer="192.168.1.45";
 
IPAddress address = IPAddress.Parse(RemoteIpServer);
Console.WriteLine(address);
Вывод: //192.168.1.45
string RemoteIpServer="192.168.1.045"; //является вполне допустимо использовать такой IP.
 
IPAddress address = IPAddress.Parse(RemoteIpServer);
Console.WriteLine(address);
Вывод: //192.168.1.37 Есть ли метод, который преобразует string в IPAddress правильно в последнем случае?

Решение задачи: «Проверка IP адреса на валидность, если в одном из байтов есть начальный нуль»

textual
Листинг программы
 static void Main(string[] args) {
String IP_String="192.168.1.040";
IPAddress ip;
if (!IPAddress.TryParse(IP_String, out ip)) return;
ip=string_to_ip_convert(IP_String);
 
}
 
static IPAddress string_to_ip_convert(string IP_string)
        {
            String[] bytes = IP_string.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
            IP_string = "";
            int i = 0;
            foreach (string one_byte in bytes)
            {
                //bytes[i] = one_byte.TrimStart('0');
                string temp = one_byte.TrimStart('0');
                IP_string = IP_string + temp;
                if (i < 3) IP_string = IP_string + ".";
                i++;
            }
            Console.WriteLine("Обработанный IP:" + IP_string);
            IPAddress ip = IPAddress.Parse(IP_string);
            return ip;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы