最新消息:

Java请求万网接口判断域名是否已被注册

Java 前端收藏 1296浏览

一  通过Get请求验证域名是否已被注册

万网提供了一个免费的接口来查询域名是否已被注册,http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=域名

比如说我们在浏览器中输入:http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=aliyun.com

最后返回:

<?xml version="1.0" encoding="gb2312"?>
  <property>
    <returncode>200</returncode>
    <key>aliyun.com</key>
  <original>211 : Domain exists</original>
</property>

<original>211 : Domain exists</original> 这一行中的211就是我们判断一个域名是否注册的关键所在了。通过这个接口进行查询,在这里只会返回两种状态,210或者211,210表示可以使用,211则是已经被注册了

 

比如我们查询:http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=aliyunbaidu.com

最后返回:

<?xml version="1.0" encoding="gb2312"?>
  <property>
    <returncode>200</returncode>
    <key>aliyunbaidu.com</key>
  <original>210 : Domain name is available</original>
</property>
可以看出,aliyunbaidu.com这个域名还没有被注册

 

Java实现代码:

/**
 * 判断一个域名是否已被注册,用的万网的接口
 * 这里采用的单线程,因为是免费的接口,所以线程过大容易被封IP
 * @param domain 待检测域名,如:baidu.com
 * @return 是否可以注册
 * */
public boolean domainIsAvailable(String domain){
    boolean isAvailable = false;  //该域名是否可用
    try {
        URL url = new URL("http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=" + domain);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setConnectTimeout(10000);  //毫秒
        connection.setReadTimeout(5000);
        InputStream inputStream = new BufferedInputStream(connection.getInputStream());
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String line = "";  //每次读取一行数据
        String reg = "<original>(.*?)</original>";  //正则
        while((line = reader.readLine()) != null){
            if(line.matches(reg)){
                //只有两种状态,210表示可用,211表示不可用
                String state = line.substring(10, 13);
                if("210".equals(state))
                    isAvailable = true;                  
            }
        }
    }  catch (IOException e) {
        e.printStackTrace();
    }      
    return isAvailable;
}

调用代码:

String domain = "aliyunbaidu.com";
Test test = new Test();
boolean check = test.domainIsAvailable(domain);
System.out.println(domain + " 是否可用:" + check);

最后控制台输出:

aliyunbaidu.com 是否可用:true

二 Post请求简单实例

 

/**
 * POST请求测试
 * */
public void POSTTest(){
    try {
        URL url = new URL("http://localhost:8080/Demo/jsp/show_get");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        connection.setDoOutput(true);  //这里因为post请求有数据传输,一定要是true
        connection.setDoInput(true);
        connection.setUseCaches(false);
         
        String str = "str=aaavc";
        OutputStream outputStream = connection.getOutputStream();
        outputStream.write(str.getBytes("UTF-8"));
        outputStream.flush();
        outputStream.close();
        System.out.println(connection.getResponseCode());
        if(connection.getResponseCode() == 200){
            InputStream inputStream = connection.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuffer stringBuffer = new StringBuffer();
            String line = "";
            while((line = reader.readLine()) != null){
                stringBuffer.append(line + "\n");
            }
            System.out.println(stringBuffer.toString());
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

 

转载请注明:前端收藏 » Java请求万网接口判断域名是否已被注册