只从url的域名获取网站名称

时间:2017-07-25 10:17:28

标签: java spring

我需要将URLS列表转换为其主机名。所以尝试了下面提到的代码:

URL netUrl = new URL(url); 
String host = netUrl.getHost();

上面提到的代码产生如下所示的输出:

a95-101-128-242.deploy.akamaitechnologies.com
a23-1-242-192.deploy.static.akamaitechnologies.com
edge-video-shv-01-lht6.fbcdn.net

我只想要上面输出的网站名称,如下所示:

akamaitechnologies
akamaitechnologies
fbcdn

请有人帮忙。 感谢

1 个答案:

答案 0 :(得分:0)

如果要解析网址,请使用java.net.URIjava.net.URL有一堆问题 - 它的equals方法执行DNS查找,这意味着使用它的代码在与不受信任的输入一起使用时可能容易受到拒绝服务攻击。

public static String getDomainName(String url) throws URISyntaxException {
  URI uri = new URI(url);
  String domain = uri.getHost();
  return domain.startsWith("www.") ? domain.substring(4) : domain;
}

这应该有用。