这里我使用了HttpURLConnection向 http://whois.chinaz.com发起Get请求,然后使用正则对返回的网页进行匹配查询,保存我们需要的whois信息

/**
	 * 这里的查询用了直接从whois.chinaz.com的网页中用正则取出所需信息,方法不是很好
	 * 不过还是可以查到一些相关信息
	 * 
	 * @param domain 待检测域名,如:baidu.com
	 * @return 该域名的Whois信息
	 * */
	public String whoisQuery(String domain){
		StringBuffer stringBuffer = new StringBuffer();  //查询到的信息
		stringBuffer.append("域名 " + domain + " 的Whois信息:\n\n");
		try {
			URL url = new URL("http://whois.chinaz.com?DomainName=" + domain);
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setRequestMethod("GET");
			connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			connection.setConnectTimeout(10000);  //毫秒
			connection.setReadTimeout(10000);
			
			InputStream inputStream = new BufferedInputStream(connection.getInputStream());
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
			String line = "",str = "";
			String reg = "(\\s*)<asp:Literal ID=\"ProcessImage\" runat=\"server\">(.*)";

			while((line = reader.readLine()) != null){
				if(line.matches(reg)){
					str = line.replaceFirst("\\s*<asp:Literal ID=\"ProcessImage\" runat=\"server\">", "");
//					System.out.println(str);
					
					Pattern pattern = Pattern.compile("该域名未被注册(.*?)");
					Matcher matcher = pattern.matcher(str);
					if(matcher.find()){
						stringBuffer.append("该域名未被注册,没有相关Whois信息!\n");
						break;
					}
					
					pattern = Pattern.compile("域名:(.*?)&nbsp");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("域名: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("域名ID: (.*?)<br/>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("域名ID: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("该数据缓存于 <font color=red>(.*?)</font>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("该数据缓存于: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("注册商:(.*?)<br/>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("注册商: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("注册人:(.*?)&nbsp");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("注册人: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("联系人:(.*?)&nbsp");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("联系人: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("更新时间:(.*?)<br/>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("更新时间: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("创建时间:(.*?)<br/>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("创建时间:" + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("过期时间:(.*?)<br/>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("过期时间: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("域名服务器:(.*?)<br/>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("域名服务器: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("DNS服务器:(.*?)<br/>");
					matcher = pattern.matcher(str);
					while(matcher.find())
						stringBuffer.append("DNS服务器: " + matcher.group(1) + "\n");
					
					pattern = Pattern.compile("域名状态:(.*?)<br/>");
					matcher = pattern.matcher(str);
					if(matcher.find())
						stringBuffer.append("域名状态: " + matcher.group(1) + "\n");
					
					break;
				}					
			}
			
		}  catch (IOException e) {
			e.printStackTrace();
		}	
		
		return stringBuffer.toString();
	}


然后进行调用测试:

System.out.println(test.whoisQuery("www.baidu.com"));

查询到的信息如下:

域名 www.baidu.com 的Whois信息:

域名: baidu.com
该数据缓存于: 2015-11-25 10:39
注册商: MARKMONITOR INC.
联系人: zhiyong duan
更新时间: 2015年09月10日
创建时间:1999年10月11日
过期时间: 2017年10月11日
域名服务器: whois.markmonitor.com
DNS服务器: DNS.BAIDU.COM
DNS服务器: NS2.BAIDU.COM
DNS服务器: NS3.BAIDU.COM
DNS服务器: NS4.BAIDU.COM
DNS服务器: NS7.BAIDU.COM
域名状态: 运营商设置了客户禁止删除保护 http://www.icann.org/epp#运营商设置了客户禁止删除保护