46

In my program a user enters a url string, say

http://www.engineering.uiowa.edu/~hawkeng//fall01/graphics/potato.gif

how would I get the IP address of this url? I tried using

InetAddress address = InetAddress.getByName(urlStr);

but the result always comes back null. What is the proper way to get the IP address?

2 Answers 2

72

Try this:

InetAddress address = InetAddress.getByName(new URL(urlString).getHost());

To get the raw IP:

String ip = address.getHostAddress();
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks that worked, though it returns a name/ip address. If I want to use the IP address for a socket do I need to use the '/' as a delimiter to only extract the ip address or would it work as is?
just call address.getHostAddress() on the InetAddess object to get a string version of the IP. Or better, create the socket directly with the InetAddress object.
@brettw: I edited my answer at the same time that you commented.
10

You need to give hostname to getByName() method and it returns

the IP address of a host, given the host's name.

URL url = new URL("http://www.engineering.uiowa.edu/~hawkeng//fall01/graphics/potato.gif");
System.out.println(url.getHost());
InetAddress address = InetAddress.getByName(url.getHost());
System.out.println(address.toString());

Output = www.engineering.uiowa.edu/128.255.17.182

To get the IP address

String temp = address.toString();
String IP = temp.substring(temp.indexOf("/")+1,temp.length());

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.