Java获取域名
private static final char URL_SPLASH = '/';
private static final String URL_SCHEME_POSTFIX = "://";
private static final String URL_HOST_DELIMITER = ".";
private static final String URL_HOST_DELIMITER_REGEX = "\\."; private static final String[] URL_ORG_DOMAIN = {
"com", "ac", "aero", "asia", "arpa", "bike", "biz", "coop", "cc", "edu", "gov", "info",
"int", "idv", "mil", "museum", "mobi", "net", "name", "org", "pro", "tel", "travel",
"tv", "us", "xxx"
}; private static final String[] URL_NATIONAL_DOMAIN = {
"ac", "ad", "ae", "af", "ag", "ai", "al", "am", "an", "ao", "aq", "ar", "as", "at",
"au", "aw", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bm", "bn",
"bo", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cf", "cg", "ch", "ci",
"ck", "cl", "cm", "cn", "co", "cq", "cr", "cu", "cv", "cx", "cy", "cz", "de", "dj",
"dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "es", "et", "ev", "fi", "fj", "fk",
"fm", "fo", "fr", "ga", "gb", "gd", "ge", "gf", "gh", "gi", "gl", "gm", "gn", "gp",
"gr", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il",
"in", "io", "iq", "ir", "is", "it", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km",
"kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt",
"lu", "lv", "ly", "ma", "mc", "md", "mg", "mh", "ml", "mm", "mn", "mo", "mp", "mq",
"mr", "ms", "mt", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni",
"nl", "no", "np", "nr", "nt", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk",
"pl", "pm", "pn", "pr", "pt", "pw", "py", "qa", "re", "ro", "ru", "rw", "sa", "sb",
"sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "st",
"su", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to",
"tp", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "uk", "us", "uy", "va", "vcSt", "ve"
}; public static String getUrlHostName(String url) { int start = url.indexOf(URL_SCHEME_POSTFIX);
if (start == -1) {
start = 0;
} else {
start += URL_SCHEME_POSTFIX.length();
}
int end = url.indexOf(URL_SPLASH, start);
if (end == -1) {
end = url.length();
}
url = url.substring(start, end);
String[] urls = url.split(URL_HOST_DELIMITER_REGEX);
int urlssize = urls.length;
if (urlssize < 2) {
return null;
}
StringBuffer host = new StringBuffer();
String urltemp = null;
String topHostTemp = null;
int findIndex = -1;
/**
* 逻辑:从后往前查,第0个不做判断
* 目的:查国家地区域名,找到最靠前的二级域名,如google.co.jp 查到co
*/
for (int i = urlssize - 1; i > 0; i--) {
urltemp = urls[i];
for (int j = 0; j < URL_NATIONAL_DOMAIN.length; j++) {
topHostTemp = URL_NATIONAL_DOMAIN[j];
if (TextUtils.equals(urltemp, topHostTemp)) {
findIndex = i;
break;
}
}
}
if (findIndex == -1) {
findIndex = urlssize - 1;
}
/**
* 逻辑:从国家地区域名往前查,第0个不做判断
* 目前: 查主域名,如sina.com.cn;上一步查到cn,后一步查com,如12306.cn.需要查询是否有主域名
*/
boolean isFind = false;
for (int i = findIndex; i > 0; i--) {
urltemp = urls[i];
for (int j = 0; j < URL_ORG_DOMAIN.length; j++) {
topHostTemp = URL_ORG_DOMAIN[j];
if (TextUtils.equals(urltemp, topHostTemp)) {
findIndex = i;
isFind =true;
break;
}
}
if(isFind ){
break;
}
}
if (findIndex > 0) {
findIndex--;
}
if (findIndex != -1) {
for (int i = findIndex; i < urlssize; i++) {
host.append(urls[i]);
if (i != urlssize - 1) {
host.append(URL_HOST_DELIMITER);
}
}
}
return host.toString();
}
Java获取域名的更多相关文章
- Java实现通过IP获取域名,通过域名获取IP
一.通过Linux命令实现 ping www.baidu.com nslookup www.baidu.com nslookup 14.215.177.166 为什么这个命令会有一个192.168.1 ...
- java获取https网站证书,附带调用https:webservice接口
一.java 获取https网站证书: 1.创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader ...
- 网络编程中获取域名和id的方法
package com.lanqiao.java.test; import java.net.InetAddress;import java.net.UnknownHostException; pub ...
- Java获取网络IP
Java获取获取网络IP,浅尝辄止咯- import java.net.InetAddress; import java.net.UnknownHostException; /** * 获取网络IP ...
- js/java 获取、添加、修改、删除cookie(最全)
一.cookie介绍 1.cookie的本来面目 HTTP协议本身是无状态的.什么是无状态呢,即服务器无法判断用户身份.Cookie实际上是一小段的文本信息(key-value格式).客户端向服务 ...
- java 获取本地 mac 地址
主要参考:Java获取本机MAC地址/IP地址/主机名 做的更改: 1.我的windows是中文版,程序中获取mac时是按照physical address 获取的,添加上"物理地址&quo ...
- js获取域名
<script language="javascript">//获取域名host = window.location.host;host2=document.domai ...
- [转]js获取域名、url、url参数值
//获取域名host1 = window.location.host;host2 = document.domain; //获取页面完整地址url = window.location.href; 获取 ...
- php 获取域名等Url
<?php //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br />"; //获取网页地址 echo $_SERVER['PH ...
随机推荐
- pytorch中Math operation操作:torch.ger()
torch.ger(vec1, vec2, out=None) → Tensor Outer product of vec1 and vec2. If vec1 is a vector of size ...
- 九度oj 题目1130:日志排序
题目描述: 有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录:“hs_10000_p”是计算任务的名称,“2007-01-17 19:22:53,315”是计算任 ...
- Mountaineers
Mountaineers 时间限制: 3 Sec 内存限制: 128 MB 题目描述 The Chilean Andes have become increasingly popular as a ...
- HDU 3001 三进制 状压dp
Travelling Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- rsync同步文件
rsync中的参数 -r 是递归 -l 是链接文件,意思是拷贝链接文件:-p 表示保持文件原有权限:-t 保持文件原有时间:-g 保持文件原有用户组:-o 保持文件原有属主:-D 相当于块设备文件: ...
- 阻塞IO下的echo回显实验
我们只关心代码中的业务逻辑和底层阻塞原因 客户端代码 发送数据 std::string message(len, 'S'); int nw = stream->sendAll(message.c ...
- 蓝桥java 入门训练 Fibonacci数列
import java.util.Scanner; public class Main{ public static void main(String[] args) { int maxn=10000 ...
- Jetty插件实现热部署(开发时修改文件自动重启Jetty)
在pom.xml文件中配置Jetty插件的参数:scanIntervalSeconds <plugin> <groupId>org.mortbay.jetty</grou ...
- Jenkins使用Publish Over FTP Plugin插件上传FTP详解
一.安装插件[Publish Over FTP] 二.在[系统管理]->[系统设置]->[Publish over FTP]->点击[增加]按钮,增加一个要连接的FTP: FTP S ...
- 数字巨头们的表态--<大佬与大话>
作者魏武挥 类别非虚构 / 中篇 本书为作者为<21世纪商业评论>的专栏文章合集,共20篇,算是第一卷吧,后期还会写下去.这个专栏的名字叫<大佬与大话>,专门收集TMT圈子商业 ...