×

Java InetAddress class

InetAddress class

The InetAddress class refers to the IP address, both IPv4 and IPv6.An instance of an InetAddress consists of an IP address and possibly its corresponding hostname. It provides a method to get the IP address of the hostname and hostname of the IP address. An IP address represents a 32 bit or 128-bit unsigned number. The InetAddress class represents a cache to store successful as well as the unsuccessful hostname.

TCP/IP Protocol

TCP/IP refers to the suite of communication protocols used to interconnect network devices on the Internet. TCP/IP applies to the data exchanges between end-to-end communications over the internet. It indicates how it should be broken into packets, addressed, transmitted, routed, and received at the destination. There are two main protocols in the suite that serve specific functions.

TCP specifies a way applications can create channels of communication across a network. It also specifies how a message assembles into smaller packets before they transmit over the Internet and reassembles in the right order at the destination address.

IP refers to how to address and route each packet to make sure it reaches the right destination. The gateway computer on the network checks this IP address to determine where to forward the message.

IP Address

An IP address is a numerical representation that uniquely identifies a specific resource on the network. IP address specifies the IPv4 and IPv6.

Addresses in IPV4 are 32-bits long, which allows for a maximum of 232 unique addresses. IPv6 has a 128-bits address, which provides 2128 unique addresses.

IP addresses indicate in binary numbers but are typically expressed in decimal form (IPv4) or hexadecimal form(IPv6) for making them more accessible to humans.

IP versions      

IPv4 addresses

The IPv4 protocol has 232 addresses. Addresses in IPv4 are 32-bits long and to create a maximum of 4,294,967,296 unique addresses. IPv4 is 32- bit binary numbers, contain two sub-addresses, the network and the host with an imaginary boundary separating both network and host. An IP address specifies as 4 octets of numbers from 0-255 represented in decimal form. An IPv4 address specifies in dotted-decimal notation, with every eight bits (octet) represented by a number from 1 to 255, each separated by a dot. An example of an IPv4 address looks like this: 192.168.17.43.

IPv4 addresses are composed of two parts. The first number in the address specifies the network, while the second number specifies the host. A network host denotes the computer connected to a computer network. A host specifies to the server offering information resources, services, and applications to users or other nodes on the network. It is a network that uses the various protocols and attaches the various hosts for their inter-communications.

Addressing modes of IPv4

  • Unicast Addressing mode

The data will be sent only to one intended host and the destination.

  • Broadcast Addressing Mode

The packet will be sent to all the hosts in a network segment.

  • Multicast Addressing mode

Multicast Addressing mode has a combination of both the previous two modes. The server sends packets that are entertained by more than one server. The network has one IP address for the Network Number, which represents the network, and one IP address is for the Broadcast address, which represents all the hosts in that network.

Classes of the IPv4

  • Class A

In Class A network, the first eight bits represent the network part of the address, while the remaining part of the address is the host part of the address. There are128 possible Class A networks. Class A has an address range 0.0.0.0 to 127.0.0.0

  • Class B

In Class B network, the network part of the address is represented by the first 16 bits, and the remaining part is referred to as the host part of the address. It has range from 128.0.0.0 to 191.255.0.0. There are near about 16,384 Class B networks.

  • Class C

In Class C network, the first 24 bits of the address represent the network address, and the remaining part denotes the host address. Class C has network addresses range from 192.0.0.0 to 223.255.255.0. There are near about 2 million possible Class C networks.

  • Class D

In Class D network uses for multicasting applications. It has 32-bit network addresses, represents to the multicast groups in the range of 224.0.0.0 ---------239.255.255.255. Within the Class D address space, there are no host addresses.

  • Class E

In Class E networks having the addresses from 240.0.0.0 to 255.255.255.255. Its usage was never defined as this class is reserved. Due to this, most network implementations discard these addresses as illegal or undefined. The 255.255.255.255 address is considered as an exception, which is used as a broadcast address.

IPv4 address exhaustion

Initially, IPv4 specification was designed for the DARPA network. At the time, the 232 addresses were certainly considered sufficient. It became apparent that the IPv4 address space would not be big enough for a worldwide Internet with numerous connected devices per person. This will lead to the generation of the IPv6 addresses.

 IPv6 addresses

To avoid the address space issue in technology, IPV6 created an enormous address space for the network. The address space increases from IPv4 32 bits to IPv6 128 bits having 3.4*1038 (2128) unique addresses, which is reportedly enough addresses to assign one to every single atom on the surface of the earth. IPv6 specifies eight sets of four hexadecimal digits, which is separated by a colon. IPv6 address looks like 2DAB:FFFF:0000:3EAE:01AA:00FF:DD72:2C4A.There are no defined classes in the IPv6 version.

Addressing modes of IPv6

  • Unicast addressing mode

     The IPv6 packet consists of source and destination IP addresses.

The host has an IP address that is unique in that network segment. Whenever a network router receives a unicast IP packet, destined to a single host, it sends out one of its outgoing interface which connects to that particular host.

  • Multicast addressing mode

The packet destined to multiple hosts sends on a special multicast address. All the host’s interest in that multicast information, need to join that multicast group first. All the interfaces which are involved in that group receive the multicast packet and process it, while other hosts not interested in multicast packets ignore the multicast information.

  • Anycast addressing mode

Multiple hosts are assigned the same Anycast IP address. When a host wants to communicate with a host equipped with an Anycast IP address, it sends a Unicast message. By using the complex routing mechanism, that Unicast message delivers to the host closest to the sender in terms of routing cost.

Name Resolution

To remember the IP address of every device is not possible in both the case of both IPv4 and IPv6.The name resolution is a way of reconciling an IP address to a user-friendly computer domain name. The Domain Name Servers consists of a directory of domain names and translate them to Internet Protocol (IP) addresses. Although domain names are easy to remember, access websites based on IP addresses are accessible.

Whenever a client writes a web address www.google.com, your DNS associated with the domain name translates it into a machine-friendly IP address and directs your Internet connection to the correct website.

Methods of InetAddress

The InetAddress class doesn’t have public constructors, so you create a new instance by using one of its factory methods.

Factory methods: These methods are static methods in a class which return an instance of that class

Method Description
  public  static InetAddress getByName(String host) It creates an InetAddress object based on the provided hostname.
   public static InetAddress getByAddress(byte[] addr) It returns an InetAddress  object from a byte array of the raw IP address.
  public static getAllByName(String host) It returns an array of InetAddress objects from the specified hostname, as a hostname can be associated with several IP addresses.
public static InetAddress  getLocalHost() It returns the instance of InetAddress containing the local hostname and address.

Methods of InetAddress class:

Method Description
public  byte[] getAddress() It returns the raw IP address of this InetAddress object as an array.
public String getHostAddress() It returns IP address in textual form.
public boolean isAnyLocalAddress() It returns true if this address represents a local address.
public boolean isLinkLocalAddress() It returns true if this address is a link local address.
public boolean isLoopbackAddress() It returns true if this address is a loopback address.
public boolean isMCGlobal() It used to check whether the  multicast address has a global scope or not
public boolean isMCLinkLocal() It is used to check utility routine if the multicast address has a link scope or not.
public boolean isMCNodeLocal() It is used to check the utility routine if the multicast address has node scope or not.
public boolean isMCOrgLocal() It is used to check utility routine if the multicast address has organization scope or not.
public boolean isMCSiteLocal() It returns true if this multicast address has site scope.
public boolean isMulticastAddress() It returns true if this address is an IP multicast address.
public boolean isSiteLocalAddress() It returns true if this address is a site local address.
public int hashCode() It returns the hashcode associated with this address object.
public boolean equals(Object obj) It returns true if this IP address is the same as that of the object specified.

Example 1:  To get the localhost address of the system.

import java.net.InetAddress;
class inet{
public static void main(String s1[])throws Exception
{
InetAddress add=InetAddress.getLocalHost();
System.out.println(add);
}
} 

The output of the above program:

localhost address of the system

Example 2: List all IP address associate with a given hostname/domain.

import java.net.InetAddress;
class inet
{
public static void main(String s5[])throws Exception
{
InetAddress[] add=InetAddress.getAllByName("google.com");
for(InetAddress addr:add)
System.out.println(addr.getHostAddress());
}
} 

The output of the above program:

IP address associate with a given hostname

Example 3: To check two IPs are equal or not by using equals() method.

import java.net.InetAddress;
public class InetAddressMethods
{
public static void main(String s[])
{
try
{
InetAddress ip1=InetAddress.getByName("www.google.com");
System.out.println("hostname 1"+ip1.getHostName());
InetAddress ip2=InetAddress.getByName("www.google.com");
System.out.println("hostname1"+ip2.getHostName());
if(ip1.equals(ip1))
{
System.out.println("both are equals");
}
else
{
System.out.println("both are not equals");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
} 

The output of the program:

To check two IPs are equal or not by using equals() method.

Example 4: Using the various methods of the InetAddress class.

import java.net.InetAddress;
public class InetAddressMethods
{
public static void main(String s[])
{
try
{
// It returns the loopback address.
InetAddress addr=InetAddress.getLoopbackAddress();
System.out.println("The loopback address"+addr.getHostAddress());
//It returns the hashcode for the object on which this method is invoked.
byte[] hashC=new byte[]{127,1,0,0};
System.out.println("the hashcode"+hashC.hashCode());
//It is used to check whether the InetAddress represents local address or not.
InetAddress addF=InetAddress.getByName("www.facebook.com");
System.out.println("local address or not:="+addF.isAnyLocalAddress());
//It returns true if this address is a link local address
InetAddress addY=InetAddress.getByName("www.yahoo.com");
System.out.println("link local address or not:="+addY.isLinkLocalAddress());
//is used to check whether the multicast address has a global scope or not.
InetAddress addC=InetAddress.getByName("www.ctect.com");
System.out.println("multicast address has global scope or not:="+addC.isMCGlobal());
//It is used to check utility routine if the multicast address has link scope or not.
InetAddress addG=InetAddress.getByName("www.google.com");
System.out.println("multicast address has link scope or not:="+addG.isMCLinkLocal());
// is used to check utility routine if the multicast address has node scope or not.
InetAddress addJ=InetAddress.getByName("www.javatpoint.com");
System.out.println("multicast address has node scope or not:="+addJ.isMCNodeLocal());
// is used to check utility routine if the multicast address has organization scope or not.
InetAddress addt=InetAddress.getByName("www.tutorialandexample.com");
System.out.println("multicast address has organization scope or not:="+addt.isMCOrgLocal());
}
catch(Exception e)
{
System.out.println(e);
}
}
} 

The output of the above program:

Using the various methods of the InetAddress class.

Example 5: The toString() method of InetAddress class converts the IP address to a String.  

import java.net.InetAddress;
public class InetAddressMethods
{
public static void main(String s[])
{
try
{
//The toString() method of InetAddress class converts this IP address to a String.  
 InetAddress ip=InetAddress.getByName("www.tutorialandexample.com"); 
 InetAddress ip1=InetAddress.getByName("www.google.com"); 
 String s1= ip.toString(); 
 String s2=ip1.toString(); 
 System.out.println("string1. "+s1); 
 System.out.println("string2. "+s2); 
}
catch(Exception e)
{
System.out.println(e);
}
}
} 

The output of the program:

method of InetAddress class converts the IP address to a String.

Related Topics

Difference between Abstract Class and Interface

There is a similarity between abstract class and interface is that we cannot create objects for both of them. But irrespective of this, there are some differences between them, let’s...

2 minutes read.

SHA Decrypt in Java

In this section, we will be acknowledged about the decryption of SHA in Java. Java SHA The SHA cryptographic hash algorithm in cryptography outputs the hash value as an approximately 40-digit-long hexadecimal...

4 minutes read.

Set Up the Environment in Java

The Java is regarded as the pure object-oriented programming language. The Java applications are first compiled into the byte-code and then run by using the JVM. The Java is the...

4 minutes read.

Java float vs double

Java : Java is a pure object oriented language. It was introduced by James Gosling in the year 1995. The first public implementation of java was done by sun micro systems...

7 minutes read.

Hashtable in Java

Hashtable in Java The Hashtable class implements the Map interface and extends the Dictionary class. It implements a hash table which shows the key-value relation, i.e., it maps the keys to the values....

9 minutes read.

Sliding Window Problem in Java

A sliding window is used in computer science and data science to process large datasets. It involves breaking the dataset into smaller chunks or windows and then processing it in...

6 minutes read.

Java Database Connectivity with MySQL

In this tutorial, we will learn how to connect Database with MySQL in Java. 5 Steps to Connect to the Database in Java Load the driver (or) Register the driver classEstablish a...

4 minutes read.

Block Swap Algorithm for array rotation in Java

An array and r, the rotation factor by which the array must be rotated, are both provided to us. We must then return the rotated array. A well-known and popular method is...

4 minutes read.

Parallel Arrays Sort in Java

Sorting is a technique of arranging a sequence of numbers in ascending order, that is, the first number being lowest and gradually incrementing the numbers such that the last number...

7 minutes read.

Java Program to print even and odd numbers using 2 threads

Using two threads in a single thread is even odd printing in Java programming with multiple threads. To create code that prints even and odd using two threads, we must...

2 minutes read.

Zebra Puzzle Problem in Java

Complex puzzles like the zebra puzzle demand a lot of work and mental training to complete. Because it was created by renowned German scientist Albert Einstein, it is also sometimes...

10 minutes read.

Java Integer toUnsignedString() method

The toUnsignedString() method of Java Integer class returns a string representation of the argument as an unsigned decimal value. The second syntax returns a string representation of the given argument as...

2 minutes read.

How to Set Java_home in Linux

To set the Java_home in Linux, we must follow several steps to make us understand it easily.  Java follows the principle called WORA (write once run anywhere). We know that java...

3 minutes read.

Java Get Time in UTC

UTC is the abbreviation for Universal Time Coordinated. Before the beginning of UTC, it is mentioned as the Greenwich Mean Time (GMT) but Now it is mentioned as the universal...

4 minutes read.

Hierarchy of operators in Java

Operators are the most frequently used terminology in any area of programming, and it helps in various approaches to efficiently solve daily life problems by computer programming. The simple addition of...

4 minutes read.

Java exception list

Java uses exceptions, like the majority of contemporary programming languages, to deal with both errors and "extraordinary events." When an exception arises inside the program, it messes up the regular...

6 minutes read.

Java Xmx

This section will explain what Xmx in Java is and how to establish a Java application's maximum heap size. When we execute a Java application, it occasionally displays an error message...

3 minutes read.

Association in Java

In Java, association refers to the link between two classes established by their objects. One-to-one, one-to-many, and many-to-many connections are managed via association. The Association defines the multiplicity between objects...

5 minutes read.

Sort Dates in Java

The Collection class's sort() method, which is a component of the Comparator mechanism, arranges the data in decreasing order. The Comparator interface can be used to accomplish the goal while...

4 minutes read.

How to set path in Java

To make programs that can run on our systems, we need to install programming language-related software in our systems. Different programming languages require different types of software, aka IDEs (Integrated Development...

5 minutes read.