How To Get Ip Address In Java Using Inetaddress

An IP address is either a 32-bit or 128-bit unsigned number used by IP, a lower-level protocol on which protocols like UDP and TCP are built. In Java, the InetAddress class represents an Internet Protocol (IP) address.

Here we will learn how to get localhost IP address and a website IP addresses in java using InetAddress.

package com.journaldev.util;import java.net.UnknownHostException;import java.net.InetAddress;public class JavaIPAddress { /** * @param args * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException { //print localhost ip address System.out.println(InetAddress.getLocalHost().getHostAddress()); //print website ip address System.out.println(InetAddress.getByName("www.journaldev.com")); //print all ip addresses for a website InetAddress[] inetAddresses = InetAddress.getAllByName("www.google.com"); for(InetAddress inet : inetAddresses){ System.out.println(inet); } }}

Output of the above program is:

192.168.3.1www.journaldev.com/50.116.65.160www.google.com/74.125.224.82www.google.com/74.125.224.81www.google.com/74.125.224.80www.google.com/74.125.224.83www.google.com/74.125.224.84www.google.com/2001:4860:4001:803:0:0:0:1010

When we use InetAddress.getByName(String host) it returns the current IPv4 address of the hostname, when we use InetAddress.getAllByName(String host) it returns all the IP addresses associated with the hostname. The last output of google.com IP is IPv6 format IP address.

These methods throw UnknownHostException if there are no IP addresses associated with the hostname. Note that we should not use any protocol like HTTP to provide the hostname input.

  • 20