使用URL字符串获取IP地址?(JAVA)

use*_*853 40 java ip ip-address inetaddress

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

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

我如何获得此网址的IP地址?我试过用

InetAddress address = InetAddress.getByName(urlStr);
Run Code Online (Sandbox Code Playgroud)

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

Vic*_*usa 65

试试这个:

InetAddress address = InetAddress.getByName(new URL(urlString).getHost());
Run Code Online (Sandbox Code Playgroud)

获取原始IP:

String ip = address.getHostAddress();
Run Code Online (Sandbox Code Playgroud)

  • 只需在InetAddess对象上调用address.getHostAddress()即可获得IP的字符串版本.或者更好,直接使用InetAddress对象创建套接字. (2认同)

Ran*_*Rag 10

你需要给hostnameGetByName方法()方法,它返回

给定主机名称的主机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());
Run Code Online (Sandbox Code Playgroud)

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

得到的 IP address

String temp = address.toString();
String IP = temp.substring(temp.indexOf("/")+1,temp.length());
Run Code Online (Sandbox Code Playgroud)