java调用万网域名接口

1.常量定义

public class DomainConstants {public static class CHARARRAY {public static String[] digitalArray = new String[] { "0", "1", "2","3", "4", "5", "6", "7", "8", "9" };public static String[] letterArray = new String[] { "a", "b", "c", "d","e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p","q", "r", "s", "t", "u", "v", "w", "x", "y", "z" };}/*** 在万网www.net.cn上目前支持的域名后缀类型*/public static class SUFFIX {public static String DOMAIN_COM = ".com";public static String DOMAIN_CN = ".cn";public static String DOMAIN_XYZ = ".xyz";public static String DOMAIN_WANG = ".wang";public static String DOMAIN_NET = ".net";public static String DOMAIN_ORG = ".org";public static String DOMAIN_TOP = ".top";public static String DOMAIN_REN = ".ren";public static String DOMAIN_CLUB = ".club";public static String DOMAIN_PUB = ".pub";public static String DOMAIN_ROCKS = ".rocks";public static String DOMAIN_BAND = ".band";public static String DOMAIN_MARKET = ".market";public static String DOMAIN_SOFTWARE = ".software";public static String DOMAIN_SOCIAL = ".social";public static String DOMAIN_LAWYER = ".lawyer";public static String DOMAIN_ENGINEER = ".engineer";public static String DOMAIN_ME = ".me";public static String DOMAIN_BIZ = ".biz";public static String DOMAIN_COMCN = ".com.cn";public static String DOMAIN_NETCN = ".net.cn";public static String DOMAIN_ORGCN = ".org.cn";public static String DOMAIN_GOVCN = ".gov.cn";public static String DOMAIN_NAME = ".name";public static String DOMAIN_INFO = ".info";public static String DOMAIN_CC = ".cc";public static String DOMAIN_TV = ".tv";public static String DOMAIN_MOBI = ".mobi";public static String DOMAIN_ASIA = ".asia";public static String DOMAIN_CO = ".co";public static String DOMAIN_TEL = ".tel";public static String DOMAIN_SO = ".so";public static String DOMAIN_我爱你 = ".我爱你";public static String DOMAIN_中国 = ".中国";public static String DOMAIN_公司 = ".公司";public static String DOMAIN_网络 = ".网络";public static String DOMAIN_集团 = ".集团";}/*** 在万网www.net.cn上目前支持的域名查询地址*/public static class NETURL{//查询域名是否已经被注册public static String DOMAIN_CHECK = "http://panda.www.net.cn/cgi-bin/check.cgi";//查询域名注册者联系信息public static String DOMAIN_WHOIS = "http://whois.www.net.cn/whois/domain/";}
}

2.进制转换类定义,后面会用到

import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
public class HexTransformatUtil {  /*** 将十进制转换为任意进制值* @param digths 转换后的进制最小位上,依次出现的字符值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ"* @param num 将被转换的十进制值* @param length 转换到指定字符串后,如果不足length长度位,自动补足最小值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ"将在最前补"a"* @return*/public static String hex10ToAnly(String digths, int num,int length){  StringBuffer str = new StringBuffer("");  int base = digths.trim().length();if(0==num){str.append(digths.charAt(0));}else{Stack<Character> s = new Stack<Character>();  while(num != 0){  s.push(digths.charAt(num%base));  num/=base;  }  while(!s.isEmpty()){  str.append(s.pop());  }}String prefix = "";String suffix = str.toString();if(length>suffix.length()){for(int count = 0;count<length-suffix.length();count++){prefix = prefix + digths.charAt(0);}}return prefix + suffix;  }  /*** 将任意进制转换为十进制值* @param digths 转换前的进制最小位上,依次出现的字符值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ"* @param hexValue 转换前的进制字符串值* @return*/public static int hexAnlyTo10(String digths, String hexValue){  if(null==hexValue||"".equals(hexValue.trim()))  return 0;int base = digths.trim().length();Map<String,Integer> digthMap = new HashMap<String,Integer>();int count=0;for(char item : digths.trim().toCharArray()){digthMap.put(""+item, count);count++;}String str = new StringBuffer(hexValue.trim()).reverse().toString();int sum = 0;for(int index = 0;index<str.length();index++){sum = new Double(Math.pow(base, index)).intValue() * digthMap.get(""+str.charAt(index)) +sum;}return sum;}  public static void main(String[] args) {//将十进制"0123456789"值55转换为26进制“ABCDEFGHIJKLMNOPQRSTUVWXYZ”对应的值,不需要格式化最后输出字符串System.out.println(hex10ToAnly("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 55, 0));//将26进制“ABCDEFGHIJKLMNOPQRSTUVWXYZ”字符串值“CD”转换为十进制"0123456789"值55对应的值,不需要格式化最后输出字符串System.out.println(hexAnlyTo10("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "CD" ));}
}  

3.域名检查

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springside.modules.utils.xml.XMLElement;public class DomainSearch {static DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");/*** 利用httpclient发送soap请求* @param postUrl* @param parameterList* @return*/public static String doPost(String postUrl,List<NameValuePair> parameterList) {String retStr = "";// 创建HttpClientBuilderHttpClientBuilder httpClientBuilder = HttpClientBuilder.create();// HttpClientCloseableHttpClient closeableHttpClient = httpClientBuilder.build();RequestConfig config = RequestConfig.custom().setConnectTimeout(2000).setSocketTimeout(2000).build();// 请求地址HttpPost httpPost = new HttpPost(postUrl);httpPost.setConfig(config);UrlEncodedFormEntity entity;try {if(null==parameterList) parameterList = new ArrayList<NameValuePair>();entity = new UrlEncodedFormEntity(parameterList, "UTF-8");httpPost.setEntity(entity);CloseableHttpResponse response = closeableHttpClient.execute(httpPost);// getEntity()HttpEntity httpEntity = response.getEntity();if (httpEntity != null) {// 打印响应内容retStr = EntityUtils.toString(httpEntity, "UTF-8");//System.out.println("response:" + retStr);}// 释放资源closeableHttpClient.close();} catch (Exception e) {System.out.println("httpclient exception:"+e.getMessage());}return retStr;}/*** 域名是否被注册检查* @param domainName 检查的域名,不包含域名后缀* @param domainSuffix 域名后缀*/public static void checkDomain(String domainName, String domainSuffix) {String domain = domainName + domainSuffix;List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("area_domain", domain));params.add(new BasicNameValuePair("timeStamp", dateFormat.format(new Date())));String xml = doPost(DomainConstants.NETURL.DOMAIN_CHECK, params);XMLElement xmlElement = null;try {xmlElement = XMLElement.fromXML(xml);} catch (Exception e) {System.out.println("xml parsing exception :"+xml);}String original = xmlElement.getLeafValue("original");if(original!=null){/*if(original.split(":")[0].trim().equals("210")){System.out.println("【"+domain+"】  域名可以注册");}else if(original.split(":")[0].trim().equals("211")){System.out.println("【"+domain+"】域名已经注册");}else if(original.split(":")[0].trim().equals("212")){System.out.println("【"+domain+"】域名参数传输错误");}else if(original.split(":")[0].trim().equals("213")){System.out.println("【"+domain+"】域名查询超时");}*/String codeStr = original.split(":")[0].trim();if(codeStr.equals("210")){System.out.println(codeStr+"【"+domain+"】  域名可以注册  域名可以注册  域名可以注册  域名可以注册  域名可以注册  域名可以注册");}else {System.out.println(codeStr+"【"+domain+"】  域名已经注册");}}}/*** 检查域名所有者* @param domainName* @param domainSuffix*/public static void whoisDomain(String domainName, String domainSuffix) {String requestUrl = DomainConstants.NETURL.DOMAIN_WHOIS + domainName + domainSuffix;String str = doPost(requestUrl,null);System.out.println("whoisDomain url:" + requestUrl+",response:"+str);}public static void main(String[] args) {//查询域名jd.com域名注册者信息whoisDomain("jd", DomainConstants.SUFFIX.DOMAIN_COM);//遍历所有四位英文小写字母的com域名(aaaa.com~zzzz.com)是否被注册int length = 4;int maxValue = new Double(Math.pow(26, length)).intValue()-1;int mixValue = 0;String digths = "abcdefghijklmnopqrstuvwxyz";for(int index = mixValue;index<=maxValue;index++){String domain = HexTransformatUtil.hex10ToAnly(digths, index, length);checkDomain(domain, DomainConstants.SUFFIX.DOMAIN_COM);//万网(www.net.cn)对于频繁调用有相应处理,大致是限制频繁调用的IP在随后几小时内不响应//所以这里第一不能使用多线程并发调用,第二要控制每次调用间隔时间,这里两次调用间隔为400毫秒try {Thread.sleep(400);} catch (InterruptedException e) {}}}
}

java调用万网域名接口相关推荐

  1. 中国万网域名注册量动态:12月上旬净增8424个

    IDC评述网(idcps.com)12月24日报道:根据WebHosting.info数据,截至2013年12月16日,中国万网域名总量增至1,447,771个,相比12月初净增8,424个,域名增量 ...

  2. 4月上旬中国万网域名总量增至245.8万个 国内份额上扬

    IDC评述网(idcps.com)05月08日报道:据WebHosting.info最新数据显示,截止至2015年04月13日,中国万网域名总量突破240万,达到2,458,990个.在4月上旬期间( ...

  3. 生活杂谈之万网域名注册过程详解

    什么叫域名?我相信有很多人不了解这个名词,"域名"在百度百科解释,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位( ...

  4. java调用第三方天气预报API接口

    java调用第三方天气预报API接口 package com.sensordata.controller; import com.common.json.JSONObject; import java ...

  5. 【建站教程】万网域名使用万网\QQ企业邮箱,设置解析方法

    简介: 简单介绍一下,如何使我们的邮箱使用我们自己的域名,看起来更高大尚:如 admin@52it.club 这类的邮箱是怎么配置的呢? 一.万网企业邮箱配置如下: 当您购买了万网云邮箱产品之后,除了 ...

  6. 2月上旬中国万网域名总量近225万个 份额涨至23.8%

    IDC评述网(idcps.com)02月28日报道:据WebHosting.info最新数据显示,截止至2015年02月16日,中国万网域名总量增至2,249,213个.在2月上旬期间(2015-02 ...

  7. 中国万网域名注册总量:7月第一周新增972个

    中国IDC评述网07月17日报道:近日,据WebHosting.info公布的数据显示,截止到2012年7月9日,中国万网域名注册总量达到 1,164,832个,7月第一周新增972个(如图一图二所示 ...

  8. java调用个人微信api接口实现收发消息发朋友圈

    个人微信api接口,java调用个人微信api接口实现收发消息发朋友圈 1.微信好友收发消息         /**      * 给微信好友发消息      * @author wechatno:t ...

  9. 自己购买的域名如何设置子域名,如何设置访问多个项目,万网域名如何设置显性url转发和隐性URL转发,以及如何通过github 转发到自己的地址

    自己购买的域名如何设置子域名,如何设置访问多个项目,万网域名如何设置显性url转发和隐性URL转发. 准备工作 1.有一台服务器 2.有一个域名 多项目转发 1.通过自己的域名后面加项目名来完成,这个 ...

  10. java调用个人微信API接口收发朋友圈,删除评论朋友圈

    java调用个人微信API接口收发朋友圈,删除评论朋友圈 /** * 发送朋友圈任务 * @author wechatno:tangjinjinwx * @param ctx * @param vo ...

最新文章

  1. 2030年人类将成为混合式机器人?
  2. 【每周NLP论文推荐】 知识图谱重要论文介绍
  3. python数据分析与挖掘 | 挖掘建模
  4. Qwt中如何在曲线上标定特定点
  5. 为你的AliOS Things应用增加自定义cli命令
  6. Linux Shell高级技巧(一)
  7. _M_invoke(_Index_tuple_Indices...)
  8. 使用Apex进行混合精度训练
  9. 1.5编程基础之循环控制 24 正常血压
  10. Typename和Class在声明模板时的区别
  11. MySQL8.0数据库配置注意事项
  12. 如何阅读科研文献-------------一点思考与总结
  13. Julia:Datetime的用法
  14. eclipse使用git提交代码步骤
  15. Windows XP下无法安装字体的解决方案
  16. 上海企业英语培训机构排名
  17. 【转载】通过搜狗站长平台查看网站的搜狗流量及搜索关键字
  18. 【计算机网络】第六部分 应用层(26) 远程登录、电子邮件与文件传输
  19. MAC下使用 XMAPP 配置 php 环境
  20. xampp control-panel深深的坑

热门文章

  1. total commander最近修改标红
  2. 8.2.1-elasticsearch内置分词器之standard/simple
  3. 谈谈键盘A键不定期失灵问题
  4. DDR3内存技术原理
  5. es 创建索引 指定id_Elasticsearch创建索引流程
  6. 【可解释机器学习】-线性回归案例【基础版】(python代码)
  7. 9000字干货,一文掌握数据分析知识体系!
  8. 【历史上的今天】10 月 27 日:世界上第一次网络瘫痪;网络广告的诞生;短视频鼻祖 Vine 关闭
  9. 视频广告播放器(缓存、循环播放)
  10. Gmail大改版,36岁的电子邮箱为何未像BBS一样消亡?