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

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,查不出信息。

相关推荐

    WhoIs v1.0(域名查询程序)

    WhoIs v1.0是一款实用的工具,它的主要功能在于提供一个简洁的界面,让用户能够方便地输入域名,通过调用国际域名组织的查询系统,获取该域名的详细注册信息。这个过程不仅包括了基本的注册人、注册商、注册日期等...

    whois域名信息查询源码

    Whois域名信息查询源码是用于获取互联网上注册的域名详细信息的一种工具。它通过连接到全球各地的Whois服务器,向用户提供域名的所有者、注册日期、到期日期、域名服务器等关键信息。在IT行业中,了解和使用Whois...

    haovip.com域名Whois查询

    在IT行业中,域名Whois查询是一项基础且重要的网络信息服务,用于获取互联网上域名的注册信息。这个服务允许用户查询任何已注册的域名,包括其所有者、注册日期、到期日期以及域名注册商等详细信息。在给定的压缩包...

    java_whois.rar

    Java WHOIS查询是一个基于Java语言开发的工具,用于查询互联网上的域名信息。WHOIS是一种用于查询互联网上域名、IP地址等网络资源所有者及其注册信息的协议。在互联网管理中,WHOIS服务对于追踪域名注册人、排查网络...

    主机域名PHP+AJAX的whois查询程序-whois

    在互联网上,每个网站都有一个唯一的域名,通过WHOIS服务,我们可以获取到这个域名的注册日期、到期日期、注册人、管理者等相关信息。 【描述】中的 "[主机域名]PHP+AJAX的whois查询程序_whois" 暗示了这个程序是...

    找域名 1.0.1 域名信息批量查询/支持待查询域名列表导入

    首先,我们关注其主要功能之一——8种顶级域名的whois信息批量查询。Whois是用于查询域名所有者、注册日期、到期日期等关键信息的标准协议。这款软件支持.com、.net、.org、.cn、.com.cn、.net.cn、.org.cn、.edu.cn...

    Whois查询工具

    7. **隐私保护**:由于Whois信息涉及个人隐私,工具可能需要遵循相关的隐私政策和法规,例如GDPR(欧洲通用数据保护条例),确保不滥用或泄露用户数据。 8. **国际化和本地化**:如果工具面向全球用户,可能需要...

    [主机域名]PHP+AJAX的whois查询程序_whois.rar

    在互联网上,whois查询是获取有关域名注册信息的重要手段,包括注册者信息、注册日期、到期日期等。这个项目可能是计算机专业学生的毕业设计,旨在展示对PHP编程语言和AJAX异步通信的理解与应用。 【描述】提到的...

    域名接口查询

    - **安全检测**:检查域名的WHOIS信息,识别潜在的欺诈或恶意行为。 - **数据分析**:收集大量域名的统计信息,进行市场研究或网络趋势分析。 在开发过程中,需要注意的是,频繁的接口调用可能会导致服务方限制或者...

    [主机域名]PHP+AJAX的whois查询程序_whois【PHP】.zip

    在IT行业中,网络域名的whois查询是一项基本且重要的任务,它可以帮助我们了解域名的所有者、注册日期、到期日期以及其它注册信息。本压缩包文件包含了一个基于PHP和AJAX的whois查询程序,这对于网站管理员、开发者...

    批量域名查询

    本文将详细介绍如何使用Java编程语言实现一个批量域名查询系统,该系统可以从Excel表格中读取域名信息,并在用户界面上展示每个域名是否可以注册。 首先,我们需要理解批量域名查询的基本流程。这通常涉及到以下几...

    主机域名易捷域名查询系统v1.0-ej99domainv1.0.zip

    6. **API集成**:为了获取实时的域名注册信息,系统可能需要集成第三方API,如Whois查询接口,这些接口提供了与全球域名注册商的数据交互能力。 7. **安全考虑**:任何处理用户数据的系统都必须考虑安全性,包括...

    域名Whios查询系统asp无组件版

    域名Whois查询系统是互联网上用于检索注册域名的详细信息的一种服务,包括注册人、注册日期、到期日期、域名服务器等关键数据。在ASP(Active Server Pages)环境下开发的无组件版Whois查询系统,意味着它不需要额外...

    多线程批量检测未注册域名

    3. **域名查询API**:大多数批量检测未注册域名的工具会使用DNS查询API(如Whois API)来获取域名状态。理解这些API的工作原理和使用限制非常重要,因为频繁的请求可能会导致IP被封禁。 4. **错误处理**:在多线程...

    用Java实现对IP/TCP协议数据包的拦截和分析

    3. **IP详细信息**: 一旦我们有了IP地址,可以通过DNS查询将其转换为域名,或者通过WHOIS服务查询其注册信息,包括所有者、地理位置等。这可能需要额外的库,如`java.net.InetAddress`用于DNS查询,或第三方WHOIS ...

    TomBBS.com 高速whois查询系统

    Whois是一种Internet网络协议,用于查询域名的注册信息,包括所有者、注册日期、到期日期以及注册商等。TomBBS.com创建的这个系统可能旨在提供快速、高效的whois查询服务,帮助用户迅速获取域名的相关数据。 【描述...

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

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

    [主机域名]PHP多功能域名查询系统_phpchaxun【PHP】.zip

    4. WHOIS信息查询:提供WHOIS查询服务,获取域名的注册时间和最近更新时间等详细信息。 5. 多域名批量查询:支持批量导入域名列表进行查询,提高工作效率。 6. 数据导出与导入:系统应具备将查询结果导出为CSV或...

    [主机域名](国外域名出售程序DSS)Domain Shop Script v1.0_domainsshop_PHP项.zip

    4. 域名查询:用户可以在平台上快速查询域名的可用性,这需要与WHOIS服务器进行交互,获取域名的注册状态和持有者信息。 5. 购买与支付集成:为了实现域名的购买,Domain Shop Script 需要集成支付网关,如PayPal、...

    [主机域名]域名管理器 v0.1_mydomain【PHP】.zip

    5. **Whois查询**:系统可能内置Whois查询工具,用于查看域名的注册信息,如所有者、注册日期、到期日期等。 6. **SSL证书管理**:对于需要安全连接的网站,系统应支持SSL证书的申请、安装和更新,以实现HTTPS加密...

Global site tag (gtag.js) - Google Analytics