栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

java 获取域名

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 获取域名

小编典典

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

“戈斯林先生-为什么要使网址等于糟透了?” 解释了一个这样的问题。只是养成使用java.net.URI代替的习惯。

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;

}

应该做你想做的。

尽管它似乎运行良好,但是有没有更好的方法或有一些极端的情况可能会失败。

你编写的代码对有效的URL无效:

httpfoo/bar-相对URL带有以http。开头的路径组件。

HTTP://example.com/-协议不区分大小写。

//example.com/ -主机的协议相对URL

www/foo-相对URL的路径部分以 www

wwwexample.com-这不域名开头www.,但开始用www。

分层URL具有复杂的语法。如果你尝试不仔细阅读RFC 3986而推出自己的解析器,则可能会弄错。只需使用核心库中内置的一个即可。

如果你确实需要处理java.net.URI拒绝的混乱输入,请参阅RFC 3986附录B:

附录B.使用正则表达式解析URI引用

由于“首次匹配获胜”算法与POSIX正则表达式使用的“贪婪”消歧方法相同,因此使用正则表达式解析URI引用的潜在五个组成部分是自然而普遍的。

下一行是用于将格式正确的URI引用分解为其组件的正则表达式。

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(?([^#]*))?(#(.*))?

12 3 4 5 6 7 8 9

上面第二行中的数字仅用于增强可读性。它们指示每个子表达式(即,每个成对的括号)的参考点。

2020-03-12

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号