Является ли строка IP-адресом на C#

Является ли строка IP-адресом на C#

Всем доброго времени суток. На связи Алексей Гулынин. В данной статье я бы хотел рассказать как можно проверить является ли строка ip-адресом на C#.

Рассмотрим несколько способов:

1. Используя метод TryParse класса IPAddress:

using System;
using System.Net;

namespace TestConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
      if (IsIPAddress("192.143.123.61")) 
      {
        Console.WriteLine("IP-адрес является корректным!");
      }
      else 
      {
        Console.WriteLine("Неверный формат ip-адреса!");
      }
      Console.ReadLine();
    }
	
	// Метод проверки ip-адреса
    private static bool IsIPAddress(string ipAddress)
    {
      bool isIPAddres = false;

      try
      {
        IPAddress address;
        // Определяем является ли строка ip-адресом
        isIPAddres = IPAddress.TryParse(ipAddress, out address);
      }
      catch (Exception e) { }
      return isIPAddres;
    }
  }
}

2. Используя свойство AddressFamily (семейство адресов для IP-адреса). Не забываем добавить using System.Net.Sockets;.

private static bool IsIPAddress2(string ipAddress)
{
  IPAddress address;
  bool isIPAddres = false;
  if (IPAddress.TryParse(ipAddress, out address))
  {
    if (address.AddressFamily == AddressFamily.InterNetwork)
    {
      isIPAddres = true;
    }
  }
  return isIPAddres;
}

3. Используя регулярные выражения. Не забываем добавить using System.Text.RegularExpressions;.

private static bool IsIPAddress3(string ipAddress)
{
  bool isIPAddres = false;
  Match match = Regex.Match(ipAddress, @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");
  if (match.Success)
  {
	isIPAddres = true;
  }
  return isIPAddres;
}

В данной статье мы рассмотрели несколько способов проверки на то, является ли строка корректным IP-адресом.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *