43

在我的程序中,用户输入一个 url 字符串,比如说

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

我将如何获取此 url 的 IP 地址?我尝试使用

InetAddress address = InetAddress.getByName(urlStr);

但结果总是返回 null。获取IP地址的正确方法是什么?

4

2 回答 2

71

尝试这个:

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

要获取原始 IP:

String ip = address.getHostAddress();
于 2012-02-15T02:03:34.937 回答
11

hostname你需要给getByName()方法,它会返回

给定主机名的主机的 IP 地址。

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());

输出 =www.engineering.uiowa.edu/128.255.17.182

要获得IP address

String temp = address.toString();
String IP = temp.substring(temp.indexOf("/")+1,temp.length());
于 2012-02-15T02:09:09.587 回答