Validate IP Address With Regular Expressions

Regular Expressions

A regular expression, or regex in short, is a string of text which represents a search pattern. They are usually used either to search through text and find strings which match the given pattern, or to validate a string against the search pattern.

Regular expressions are extremely powerful but they can prove quite difficult to understand and get the hang of. Once you do manage to get the hang of them, you will most likely find that they are great to use in your code and they can save you plenty of coding time.

In this article I will be showing you how to validate an IP v4 address using a regular expression. The .NET framework contains a class called System.Text.RegularExpressions.Regex which is just what we need to validate a string of text – in our case the IP v4 address.

Add the namespace System.Text.RegularExpressions to your project and then have a look at the below code which will validate our IP v4 address:

private bool ValidateIPAddress(string ipAddress)
{
    // Set the default return value to false
    bool isIPAddress = false;

    // Set the regular expression to match IP addresses
    string ipPattern = @"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b";

    // Create an instance of System.Text.RegularExpressions.Regex
    Regex regex = new Regex(ipPattern);

    // Validate the IP address
    isIPAddress = regex.IsMatch(ipAddress);

    return isIPAddress;
}

In the above code we are first assigning the regex pattern to a string for later use. Then we are creating an instance of the Regex class, and finally we are making use of the IsMatch property of the Regex class. IsMatch will tell us if the string we passed to it contains text that matches the regular expression. If IsMatch finds a match it will return true, and if not it will return false.

The following code shows how to use this ValidateIPAddress method we just created:

bool isValid = ValidateIPAddress("192.168.0.1");

As you can see, the .NET framework makes working with regular expressions quite easy. The difficult part is the creating of the regular expression itself, but that is a whole article series on its own.

Dave

2 comments… add one
  • Flocke Link Reply

    you can use:


    IPAddress ipValue;
    bool ipOk = IPAddress.TryParse(ip, out ipValue);

  • Yogesh Link Reply

    Thanks, this is working for me

Leave a Comment