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

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

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

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

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

textual
Листинг программы
  1.  static void Main(string[] args) {
  2. String IP_String="192.168.1.040";
  3. IPAddress ip;
  4. if (!IPAddress.TryParse(IP_String, out ip)) return;
  5. ip=string_to_ip_convert(IP_String);
  6.  
  7. }
  8.  
  9. static IPAddress string_to_ip_convert(string IP_string)
  10.         {
  11.             String[] bytes = IP_string.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
  12.             IP_string = "";
  13.             int i = 0;
  14.             foreach (string one_byte in bytes)
  15.             {
  16.                 //bytes[i] = one_byte.TrimStart('0');
  17.                 string temp = one_byte.TrimStart('0');
  18.                 IP_string = IP_string + temp;
  19.                 if (i < 3) IP_string = IP_string + ".";
  20.                 i++;
  21.             }
  22.             Console.WriteLine("Обработанный IP:" + IP_string);
  23.             IPAddress ip = IPAddress.Parse(IP_string);
  24.             return ip;
  25.         }

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


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

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

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы