从url链接中获取域名 顶级域名信息 不是 www.baidu.com这种二级域名, 是 baidu.com
例: 从ss.99.www.aa.com 中获取 aa.com
从url链接中获取域名 顶级域名信息 不是 www.baidu.com这种二级域名, 是 baidu.com
例: 从ss.99.www.aa.com 中获取 aa.com
public static String getDomain(String url){
int x = StrUtil.indexOf(url,'/');
if (x < 0) {
// todo 2021/4/1 暂时没想好怎么写 不是域名的url
return url;
}
x = StrUtil.indexOf(url,'/',x + 2);
if (x < 0) {
return url;
}
url = StrUtil.sub(url, 0, x);
return url;
}
这个方法可以用来截取域名, 但是不能获取顶级域名
@Test
public void main() {
//定义好获取的域名后缀。如果还有要定义的 请添加 |(\\.域名的后缀) 。
String regStr="[0-9a-zA-Z]+((\\.com)|(\\.cn)|(\\.org)|(\\.net)|(\\.edu)|(\\.com.cn)|(\\.xyz)|(\\.xin)|(\\.club)|(\\.shop)|(\\.site)|(\\.wang)" +
"|(\\.top)|(\\.win)|(\\.online)|(\\.tech)|(\\.store)|(\\.bid)|(\\.cc)|(\\.ren)|(\\.lol)|(\\.pro)|(\\.red)|(\\.kim)|(\\.space)|(\\.link)|(\\.click)|(\\.news)|(\\.news)|(\\.ltd)|(\\.website)" +
"|(\\.biz)|(\\.help)|(\\.mom)|(\\.work)|(\\.date)|(\\.loan)|(\\.mobi)|(\\.live)|(\\.studio)|(\\.info)|(\\.pics)|(\\.photo)|(\\.trade)|(\\.vc)|(\\.party)|(\\.game)|(\\.rocks)|(\\.band)" +
"|(\\.gift)|(\\.wiki)|(\\.design)|(\\.software)|(\\.social)|(\\.lawyer)|(\\.engineer)|(\\.org)|(\\.net.cn)|(\\.org.cn)|(\\.gov.cn)|(\\.name)|(\\.tv)|(\\.me)|(\\.asia)|(\\.co)|(\\.press)|(\\.video)|(\\.market)" +
"|(\\.games)|(\\.science)|(\\.中国)|(\\.公司)|(\\.网络)|(\\.pub)" +
"|(\\.la)|(\\.auction)|(\\.email)|(\\.sex)|(\\.sexy)|(\\.one)|(\\.host)|(\\.rent)|(\\.fans)|(\\.cn.com)|(\\.life)|(\\.cool)|(\\.run)" +
"|(\\.gold)|(\\.rip)|(\\.ceo)|(\\.sale)|(\\.hk)|(\\.io)|(\\.gg)|(\\.tm)|(\\.com.hk)|(\\.gs)|(\\.us))";
Pattern p = Pattern.compile(regStr);
String host = "http://www.aaa.baidu.com/png";
Matcher m = p.matcher(host);
String domain = "没获取到";
//获取一级域名
while(m.find()){
domain = m.group();
}
System.out.println("一级域名:" + domain);
}
感谢大哥
public static void main(String[] args) {
String url = "https://a.sss.11.ss.99.www.aa.com";
System.out.println("最终输出: " + test(url, 2, ""));;
}
/**
* 递归截取域名
* @param url 源域名
* @param num 次数
* @param newUrl 顶级域名
* @return ret
*/
private static String test(String url, Integer num, String newUrl){
int x = url.lastIndexOf('.');
if (num == 1) {
x += 1;
}
String modifyUrl = StrUtil.sub(url, x, url.length());
System.out.println("输出" + num + "次:" + modifyUrl);
newUrl = modifyUrl + newUrl;
System.out.println("域名输出" + num + "次:" + newUrl);
url = StrUtil.sub(url, 0, x);
if (num != 1){
num -= 1;
return test(url, num, newUrl);
}
return newUrl;
}