Write a java program to check IP Validator.

Write a program to read a string and validate the IP address. Print “Valid” if the IP address is valid, else print “Invalid”.

Input and Output Format

  • Input consists of a string that corresponds to an IP.
  • The output consists of a string(“Valid” or “Invalid”).

Refer sample output for formatting specifications

Note: An IP address(IPv4) has the format a.b.c.d where a,b,c,d are numbers between 0-255.

Sample Input 1:

132.145.184.210

Sample Output 1:

Valid

Sample Input 2:

132.145.184.290

Sample Output 2:

Invalid

Program to Check IP Address in Java

Following are the steps to check for validation of IP:

  • Input a string from the user.
  • Pass the string to validateAddress() method.
  • Inside the method, declare a variable of boolean type and make it false.
  • Now, use the string tokenizer class to break the string into tokens by using ‘.’ as a delimiter. Extract each token and store it in an integer variable a,b,c, and d.
  • Now, check for the range of each value in variables a,b,c, and d. It should be between 0-255. If this is true then, make the boolean value true.
  • At last, return this value.
import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    
    String ipAddress = sc.nextLine();
    boolean b = validateIpAddress(ipAddress);
    if (b == true)
      System.out.println("Valid");
    else
      System.out.println("Invalid");
  }

  public static boolean validateIpAddress(String ipAddress) {
    boolean b1 = false;
    StringTokenizer t = new StringTokenizer(ipAddress, ".");
    int a = Integer.parseInt(t.nextToken());
    int b = Integer.parseInt(t.nextToken());
    int c = Integer.parseInt(t.nextToken());
    int d = Integer.parseInt(t.nextToken());
    if ((a >= 0 && a <= 255) && (b >= 0 && b <= 255)
        && (c >= 0 && c <= 255) && (d >= 0 && d <= 255))
      b1 = true;
    return b1;
  }
}

Output

Validate IP using regex in Java

Write a code to validate an IP Address using regular expression. Let, 112.12.55.215 be an IP address, if it is valid then the program should return ‘Valid’.

Regular Expression:

range = (\\d{1,2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5]) //range from 0 to 255
IPv4  = range + "\\." + range + "\\." + range + "\\." + range;  // full IP address
  1. \d – It means any digits in regex. \\d{1,2} has one or two-digit number.
  2. (0|1)\\d{2} – It means three digit number starting with 0 | 1.
  3. 2[0-4] \\d – It means a number between 200 – 249.
  4. 25[0-5] – It means a number between 250-255.

Validate IP Program using regex in Java

Following are the steps to validate IPv4 using regex:

  • Input string from the user.
  • Use the regular expression to validate the IP address.
  • If the input string matches with the regex given above then print “Valid” else print “Invalid”.
package com.demo3;

import java.util.Scanner;
import java.util.StringTokenizer;

public class IPValidator {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String ipAddress = sc.nextLine();
        String range = "(\\d{1,2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5])";
        if (ipAddress.matches(range + "\\." + range + "\\." + range + "\\." + range)) {
            System.out.println("Valid");
        }
        else{
            System.out.println("Invalid");
        }
    }
}

Output

Validate IP Address using Library

Here, we will use the external library to validate IP Addresses. We have an Apache-common validator to validate both IPv4 & IPv6 addresses. Use the following steps to use it:

  • You need to create a Maven project using any IDE (We are using Eclipse IDE)
  • Next, add the following dependency into the pom.xml file
<dependency>
    <groupId>commons-validator</groupId>
    <artifactId>commons-validator</artifactId>
    <version>1.7</version>
</dependency>
  • At last, inside an App.java file use the methods provided by Apache-common library and check if the address is valid or not. InetAddressValidator is the class that provides the following methods.
    • isValid(String inetAddress)– It returns true if the address is either IPV4 or IPV6.
    • isValidInet4Address(String arg) – It return true if the address is IPV4.
    • isValidInet6Address(String arg) – It return true if the address is IPV6.

Program to validate IP Address using Apache Common Validator

package com.IPAddress;

import java.util.Scanner;

import org.apache.commons.validator.routines.InetAddressValidator;

/**
 * Hello world!
 *
 */
public class App {
 public static void main(String[] args) {
  InetAddressValidator validator = new InetAddressValidator();
  Scanner sc = new Scanner(System.in);
  String ipAddress = sc.nextLine();
  if (validator.isValid(ipAddress)) {
   System.out.println("It is a Valid Address");
  }
  if (validator.isValidInet4Address(ipAddress)) {
   System.out.println("It is a valid IPv4 Address");
  }
  if (validator.isValidInet6Address(ipAddress)) {
   System.out.println("It is a valid IPv6 Address");
  }
 }
}

Output

Thus, in this way, we learn how to validate IP addresses in Java.