Open In App

How to validate an IP address using ReGex

Given an IP address, the task is to validate this IP address with the help of Regex (Regular Expression) in C++ as a valid IPv4 address or IPv6 address. If the IP address is not valid then print an invalid IP address.

Examples: 



Input: str = “203.120.223.13” 
Output: Valid IPv4

Input: str = “000.12.234.23.23” 
Output: Invalid IP



Input: str = “2F33:12a0:3Ea0:0302” 
Output: Invalid IP

Input: str = “I.Am.not.an.ip” 
Output: Invalid IP 

Approach:

i) [a-z]
ii) [A-Za-z0-9]
[\\.0-9]

The above expression indicates an ‘.’ and a digit in the range 0 to 9 as a regex.

Here is the implementation of the above approach. 




// C++ program to validate
// IP address using Regex
 
#include <bits/stdc++.h>
using namespace std;
 
// Function for Validating IP
string Validate_It(string IP)
{
 
    // Regex expression for validating IPv4
    regex ipv4("(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])");
 
    // Regex expression for validating IPv6
    regex ipv6("((([0-9a-fA-F]){1,4})\\:){7}([0-9a-fA-F]){1,4}");
 
    // Checking if it is a valid IPv4 addresses
    if (regex_match(IP, ipv4))
        return "Valid IPv4";
 
    // Checking if it is a valid IPv6 addresses
    else if (regex_match(IP, ipv6))
        return "Valid IPv6";
 
    // Return Invalid
    return "Invalid IP";
}
 
// Driver Code
int main()
{
    // IP addresses to validate
    string IP = "257.120.223.13";
    cout << Validate_It(IP) << endl;
 
    IP = "fffe:3465:efab:23fe:2235:6565:aaab:0001";
    cout << Validate_It(IP) << endl;
 
    IP = "2F33:12a0:3Ea0:0302";
    cout << Validate_It(IP) << endl;
 
    return 0;
}




// Java program to validate
// IP address using Regex
import java.util.regex.*;
 
class GFG {
 
  // Function for Validating IP
  static String Validate_It(String IP)
  {
 
    // Regex expression for validating IPv4
    String regex="(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
 
    // Regex expression for validating IPv6
    String regex1="((([0-9a-fA-F]){1,4})\\:){7}([0-9a-fA-F]){1,4}";
 
    Pattern p = Pattern.compile(regex);
    Pattern p1 = Pattern.compile(regex1);
 
    // Checking if it is a valid IPv4 addresses
    if (p.matcher(IP).matches())
      return "Valid IPv4";
 
    // Checking if it is a valid IPv6 addresses
    else if (p1.matcher(IP).matches())
      return "Valid IPv6";
 
    // Return Invalid
    return "Invalid IP";
  }
 
  // Driver Code
  public static void main(String args[])
  {
    // IP addresses to validate
    String IP = "257.120.223.13";
    System.out.println(Validate_It(IP));
 
    IP = "fffe:3465:efab:23fe:2235:6565:aaab:0001";
    System.out.println(Validate_It(IP));
 
    IP = "2F33:12a0:3Ea0:0302";
    System.out.println(Validate_It(IP));
 
  }
}
 
// This code is contributed by Aman Kumar.




# Python3 program to validate
# IP address using Regex
import re
 
# Function for Validating IP
 
 
def Validate_It(IP):
 
    # Regex expression for validating IPv4
    regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
 
    # Regex expression for validating IPv6
    regex1 = "((([0-9a-fA-F]){1,4})\\:){7}"\
             "([0-9a-fA-F]){1,4}"
 
    p = re.compile(regex)
    p1 = re.compile(regex1)
 
    # Checking if it is a valid IPv4 addresses
    if (re.search(p, IP)):
        return "Valid IPv4"
 
    # Checking if it is a valid IPv6 addresses
    elif (re.search(p1, IP)):
        return "Valid IPv6"
 
    # Return Invalid
    return "Invalid IP"
 
# Driver Code
 
 
# IP addresses to validate
IP = "257.120.223.13"
print(Validate_It(IP))
 
IP = "fffe:3465:efab:23fe:2235:6565:aaab:0001"
print(Validate_It(IP))
 
IP = "2F33:12a0:3Ea0:0302"
print(Validate_It(IP))
 
# This code is contributed by avanitrachhadiya2155




// C# program to validate
// IP address using Regex
using System;
using System.Text.RegularExpressions;
 
class GFG {
 
// Function for Validating IP
static string Validate_It(string IP)
{
 
    // Regex expression for validating IPv4
    string regex="(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
 
    // Regex expression for validating IPv6
    string regex1="((([0-9a-fA-F]){1,4})\\:){7}([0-9a-fA-F]){1,4}";
 
    Regex p = new Regex(regex);
    Regex p1 = new Regex(regex1);
 
    // Checking if it is a valid IPv4 addresses
    if (p.IsMatch(IP))
    return "Valid IPv4";
 
    // Checking if it is a valid IPv6 addresses
    else if (p1.IsMatch(IP))
    return "Valid IPv6";
 
    // Return Invalid
    return "Invalid IP";
}
 
// Driver Code
public static void Main()
{
    // IP addresses to validate
    string IP = "257.120.223.13";
    Console.WriteLine(Validate_It(IP));
 
    IP = "fffe:3465:efab:23fe:2235:6565:aaab:0001";
    Console.WriteLine(Validate_It(IP));
 
    IP = "2F33:12a0:3Ea0:0302";
    Console.WriteLine(Validate_It(IP));
 
}
}
 
// This code is contributed by Pushpesh Raj.




// JavaScript program to validate
// IP address using Regex
 
// Function for Validating IP
function Validate_It(IP) {
 
    // Regex expression for validating IPv4
    let ipv4 = /(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/;
 
    // Regex expression for validating IPv6
    let ipv6 = /((([0-9a-fA-F]){1,4})\:){7}([0-9a-fA-F]){1,4}/;
 
    // Checking if it is a valid IPv4 addresses
    if (IP.match(ipv4))
        return "Valid IPv4";
 
    // Checking if it is a valid IPv6 addresses
    else if (IP.match(ipv6))
        return "Valid IPv6";
 
    // Return Invalid
    return "Invalid IP";
}
 
// Driver Code
function main() {
    // IP addresses to validate
    let IP = "257.120.223.13";
    console.log(Validate_It(IP));
 
    IP = "fffe:3465:efab:23fe:2235:6565:aaab:0001";
    console.log(Validate_It(IP));
 
    IP = "2F33:12a0:3Ea0:0302";
    console.log(Validate_It(IP));
}
 
main();
 
// This code is contributed by akashish__

Output
Invalid IP
Valid IPv6
Invalid IP

Time Complexity: O (N) 
Auxiliary Space: O (1)
 


Article Tags :