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

Posted

技术标签:

【中文标题】使用 URL 字符串获取 IP 地址? (爪哇)【英文标题】:Get IP address with URL string? (Java) 【发布时间】:2012-03-06 09:49:59 【问题描述】:

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

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

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

InetAddress address = InetAddress.getByName(urlStr);

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

【问题讨论】:

【参考方案1】:

试试这个:

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

获取原始 IP:

String ip = address.getHostAddress();

【讨论】:

谢谢它的工作,虽然它返回一个名称/IP地址。如果我想将 IP 地址用于套接字,我需要使用“/”作为分隔符来仅提取 IP 地址还是按原样工作? 只需在 InetAddess 对象上调用 address.getHostAddress() 即可获取 IP 的字符串版本。或者更好的是,直接使用 InetAddress 对象创建套接字。 @brettw:我在您评论的同时编辑了我的答案。【参考方案2】:

您需要将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());

【讨论】:

以上是关于使用 URL 字符串获取 IP 地址? (爪哇)的主要内容,如果未能解决你的问题,请参考以下文章

Groovy如何获取访问地址

在python中获取url的IP地址? [复制]

js获取当前URL参数端口IP等信息

手机上怎么获取对方的ip地址

Terraform 获取 api 网关的 ip 地址

重定向后查找url并获取网站的ip地址