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 ...
随机推荐
- WordPress的编译器功能扩展
//php代码如下://向文章编辑器的Visual区添加自定义按钮,js文件存放在wp-content/plugins/文件夹下 add_action('admin_head', 'my_custom ...
- B. Balanced Lineup
B. Balanced Lineup Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB 64-bit integer ...
- Cookie窃取实验
文章:IE/FIREFOX/CHROME等浏览器保存COOKIE的位置 Chrome的Cookie数据位于:%LOCALAPPDATA%\Google\Chrome\User Data\Default ...
- HDU-1829 A Bug's Life。并查集构造,与POJ1709异曲同工!
A Bug's Life Find them, Catch them 都是并查集构造的题,不久前 ...
- 九度oj 1480
题目描述: 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的.对于给定的一个序列(a1, a2, ...,aN),我们可以得到一些上升的子序列( ...
- LINUX远程强制重启/proc/sys/kernel/sysrq /proc/sysrq-trigger
1. # echo 1 > /proc/sys/kernel/sysrq 2. # echo b > /proc/sysrq-trigger 1. /proc/sys/ke ...
- 使用Unity做2.5D游戏教程(二)
最近在研究Unity 3D,看了老外Marin Todorov写的教程很详细,就翻译过来以便自己参考,翻译不好的地方请多包涵. 这是使用Unity 游戏开发工具制作一个简单的2.5D 游戏系列教程的第 ...
- 虚拟机安装centos6.5
最近想搞一下代码覆盖率的jacoco,需要在linux环境下部署一套jenkins.故需要装一个centos的虚拟机. 一.安装虚拟机. 下载后安装一个虚拟机,我选择的是VMware虚拟机 二.安装c ...
- 算法复习——floyd求最小环(poj1734)
题目: 题目描述 N 个景区,任意两个景区之间有一条或多条双向的路来连接,现在 Mr.Zeng 想找一条旅游路线,这个路线从A点出发并且最后回到 A 点,假设经过的路线为 V1,V2,....VK,V ...
- javascript实现数据结构----栈
//栈是一种遵从后进先出原则的有序集合. //新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底 //在栈里,新元素都靠近栈顶,旧元素都叫做栈底 function Stack(){ va ...