Creating InetAddress object in Java

JavaIp

Java Problem Overview


I am trying to convert an address specified by an IP number or a name, both in String (i.e. localhost or 127.0.0.1), into an InetAdress object. There's no constructor but rather static methods that return an InetAddress. So if I get a host name it's not a problem, but what if I get the IP number? There's one method that gets byte[] but I'm not sure how that can help me. All other methods gets the host name.

InetAddress API documentation

Java Solutions


Solution 1 - Java

You should be able to use getByName or getByAddress.

> The host name can either be a machine > name, such as "java.sun.com", or a > textual representation of its IP > address

InetAddress addr = InetAddress.getByName("127.0.0.1");

The method that takes a byte array can be used like this:

byte[] ipAddr = new byte[]{127, 0, 0, 1};
InetAddress addr = InetAddress.getByAddress(ipAddr);

Solution 2 - Java

From the API for InetAddress

> The host name can either be a machine > name, such as "java.sun.com", or a > textual representation of its IP > address. If a literal IP address is > supplied, only the validity of the > address format is checked.

Solution 3 - Java

ip = InetAddress.getByAddress(new byte[] {
        (byte)192, (byte)168, (byte)0, (byte)102}
);

Solution 4 - Java

InetAddress.getByName also works for ip address.

From the JavaDoc

> The host name can either be a machine > name, such as "java.sun.com", or a > textual representation of its IP > address. If a literal IP address is > supplied, only the validity of the > address format is checked.

Solution 5 - Java

The api is fairly easy to use.

// Lookup the dns, if the ip exists.
 if (!ip.isEmpty()) {
     InetAddress inetAddress = InetAddress.getByName(ip);
     dns = inetAddress.getCanonicalHostName(); 
 }

Solution 6 - Java

InetAddress class can be used to store IP addresses in IPv4 as well as IPv6 formats. You can store the IP address to the object using either InetAddress.getByName() or InetAddress.getByAddress() methods.

In the following code snippet, I am using InetAddress.getByName() method to store IPv4 and IPv6 addresses.

InetAddress IPv4 = InetAddress.getByName("127.0.0.1");
InetAddress IPv6 = InetAddress.getByName("2001:db8:3333:4444:5555:6666:1.2.3.4");

You can also use InetAddress.getByAddress() to create object by providing the byte array.

InetAddress addr = InetAddress.getByAddress(new byte[]{127, 0, 0, 1});

Furthermore, you can use InetAddress.getLoopbackAddress() to get the local address and InetAddress.getLocalHost() to get the address registered with the machine name.

InetAddress loopback = InetAddress.getLoopbackAddress(); // output: localhost/127.0.0.1
InetAddress local = InetAddress.getLocalHost(); // output: <machine-name>/<ip address on network>

Note- make sure to surround your code by try/catch because InetAddress methods return java.net.UnknownHostException

Solution 7 - Java

This is a project for getting IP address of any website , it's usefull and so easy to make.

import java.net.InetAddress;
import java.net.UnkownHostExceptiin;

public class Main{
    public static void main(String[]args){
        try{
            InetAddress addr = InetAddresd.getByName("www.yahoo.com");
            System.out.println(addr.getHostAddress());
       
          }catch(UnknownHostException e){
             e.printStrackTrace();
        }
    }
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionyotamooView Question on Stackoverflow
Solution 1 - JavaBala RView Answer on Stackoverflow
Solution 2 - JavakarakuricoderView Answer on Stackoverflow
Solution 3 - JavaMusaView Answer on Stackoverflow
Solution 4 - JavakliuView Answer on Stackoverflow
Solution 5 - JavaBillView Answer on Stackoverflow
Solution 6 - JavaRahul ValaView Answer on Stackoverflow
Solution 7 - JavaFridjato Part FridjatView Answer on Stackoverflow