`
rensanning
  • 浏览: 3518601 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37585
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:604664
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:678533
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:87575
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:400063
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69133
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:90649
社区版块
存档分类
最新评论

Java获取域名注册信息Whois

    博客分类:
  • Java
 
阅读更多
域名的种类
(1)country-code:   
  国家/地区顶级域名(ccTLD:Country Code Top Level Domain)  
(2)generic:   
  通用顶级域名 (gTLD:generic Top Level Domain)  
(3)generic-restricted:  
  有限制的通用顶级域名(需要审核)
(4)infrastructure:   
  基础组织顶级域名(iTLD:Infrastructure TLD)
(5)sponsored:   
  组织顶级渔民sTLD
(6)test:   
  国际化域名(IDN TLD)

IANA
IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)是负责协调一些使Internet正常运作的机构。

WHOIS服务器
WHOIS服务器是一个基于"查询/响应"的TCP事务服务器,它运行在SRI-NIC机器上(26.0.0.73或10.0.0.51),向用户提供internet范围内的目录服务。本地主机上的用户程序可以通过Internet访问该服务器,其过程主要有下面三步:
  (1)在TCP服务端口43(十进制)连接SRI-NIC服务主机;
  (2)发送一个命令,以回车和换行(<CRLF>)结尾;
  (3)接受相应命令的返回信息,一旦输出结束,服务器将关闭连接。
  命令的格式非常简单。可以直接输入域名,例如,可以使用"sohu.com"查询"搜狐"网站的域名信息;也可以使用"help"得到具体的帮助信息。

通过Java的Socket类实现
public class Whois {

	private static final int DEFAULT_PORT = 43;
	
	public String query(String domain) throws Exception {
		String server = "";
		String tld = getTLD(domain);
		if ("com".equals(tld)) {
			server = "whois.verisign-grs.com";
		} else if ("net".equals(tld)) {
			server = "whois.verisign-grs.com";
		} else if ("org".equals(tld)) {
			server = "whois.pir.org";
		} else if ("cn".equals(tld)) {
			server = "whois.cnnic.cn";
		} else if ("jp".equals(tld)) {
			server = "whois.jprs.jp";
		} else if ("kr".equals(tld)) {
			server = "whois.kr";
		}
		return query(domain, server);
	}
	
	public String query(String domain, String server) throws Exception {
		Socket socket = new Socket(server, DEFAULT_PORT);
		String lineSeparator = "\r\n";

		PrintWriter out = new PrintWriter(socket.getOutputStream());
		out.println(domain);
		out.flush();

		BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		StringBuilder ret = new StringBuilder();
		String line;
		while ((line = in.readLine()) != null) {
			ret.append(line + lineSeparator);
		}
		socket.close();
		return ret.toString();
	}
	
	private String getTLD(String domain) {
		final int index;
		return (domain == null || (index = domain.lastIndexOf('.') + 1) < 1) ? domain
				: (index < (domain.length())) ? domain.substring(index) : "";
	}
	
	public static void main(String[] args) throws Exception {
		Whois w = new Whois();
		System.out.println(w.query("baidu.com"));
		System.out.println(w.query("csdn.net"));
		System.out.println(w.query("apache.org"));
		System.out.println(w.query("360.cn"));			//china
		System.out.println(w.query("mixi.jp"));			//japan
		System.out.println(w.query("laneige.co.kr"));	//korea
	}
	
}


【附录A】目前的顶级域名及WHOIS服务器一览:

来源:http://www.iana.org/domains/root/db

【附录B】目前的IPv4分配及WHOIS服务器一览:

来源:http://www.iana.org/assignments/ipv4-address-space

【附录C】全球IP地址分配组成图

  • 大小: 454.1 KB
  • 大小: 231.6 KB
  • 大小: 34.8 KB
分享到:
评论
4 楼 juicle 2015-03-30  
如果是要大量请求whois,应该怎么解决呢
3 楼 rensanning 2014-07-04  
@eliteRubin @u011700516
查询的时候,在域名前加“=”。比如:"=baidu.com"
2 楼 u011700516 2014-07-04  
eliteRubin 写道
这个对我的帮助很大。但是有一个问题没有解决,就是查询.com域名的时候,比如google.com,baidu.com,查不出信息。

同是这样,不知道什么原因
1 楼 eliteRubin 2013-08-19  
这个对我的帮助很大。但是有一个问题没有解决,就是查询.com域名的时候,比如google.com,baidu.com,查不出信息。

相关推荐

    java外部注册机源码-nomulus:GoogleAppEngine上的顶级域名注册服务

    以下资源提供有关获取代码和设置正在运行的系统的信息: 查看 和 的源代码 ,对于任何其他问题 如果您正在考虑使用我们的平台运行生产注册服务,请访问用户组并介绍您自己和您的用例。 要报告问题或做出贡献,请使用...

    Web渗透面试面试集锦.docx

    1.获取域名的 whois 信息,获取注册者邮箱姓名电话等。 2.通过站长之家、明小子、k8、站长之家等查询服务器旁站以及子域名站点,因为主站一般 比较难,所以先看看旁站有没有通用性的 cms 或者其他漏洞。 3、通过 DNS ...

    TCP/IP详解

    20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3...

    TCP/IP教程TCP/IP基础

    20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3...

    TCP/IP技术大全

    20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3...

    TCP/IP技术大全(中文PDF非扫描版)

    20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3...

    TCP-IP技术大全

    20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3...

    TCP-IP详解卷1:协议

    1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小...

    TCPIP协议详解(4-1)

    TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13...

Global site tag (gtag.js) - Google Analytics