java判断域名是否被注册表_使用Java开发自动化检测域名是否可注册工具

前言:其实,这个工具最开始是为了两位玩域名的朋友写的,虽然西部数码提供了一个自动化的域名检测工具(http://www.west.cn/web/mi/#),但是比较遗憾的是并没有提供.xin后缀的检测。因此,他们拜托我写下了这个小工具,在这个软件中对单个域名状态的检测我使用了万网提供的接口。

注:文末我会放出源代码和打包好的工具的下载链接,同时还会分享几个我生成的实用字典

73.gif

一 原理简介

对大量域名的注册情况进行自动化检测,细分开来讲就是多次对单个域名的注册情况的检测。而对单个域名的检测我们可以使用万网提供的接口(http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=xxx.yy),具体细节可以参考我以前写过的一篇文章:http://www.zifangsky.cn/2015/11/java中的get和post请求,使用万网接口判断域名是否已被注/

因此,在这篇文章里,我主要实现的是:(1)做了一个比较直观的图形化界面;(2)支持从外部导入字典文件进行自动化检测;(3)支持对多种后缀的检测,包括可以自定义后缀;(4)同时还实现了对探测结果的导出。

运行后的截图基本上是这样的:

43a66b3759ad1eb8d0531f9d359bde67.png

界面和导入导出功能不用多说,实现起来很简单,而且代码中有详细注释,一看就懂。这里需要说明的是,为了让检测的状态在界面中实时显示出来(左边的正在检测以及右边的可注册和超时域名),我选择了在一个新的线程里执行文件读取,联网查询这类比较费时的工作,同时使用了SwingUtilities.invokeLater来通知事件分发线程及时更新界面。

二 具体的代码实现package view;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.GridLayout;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.text.Format;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Iterator;

import java.util.LinkedHashSet;

import java.util.Set;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPopupMenu;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import javax.swing.SwingUtilities;

import javax.swing.filechooser.FileSystemView;

public class MainView extends JFrame implements ActionListener, MouseListener{

/**

* 自动化批量检测域名是否已注册

* @author zifangsky

* @blog http://www.zifangsky.cn

* @date 2015-12-30

* @version v1.0.0

*/

private static final long serialVersionUID = 1L;

private GridBagLayout gridbag;

private GridBagConstraints constraints;

private JPanel mainJPanel,panel1,panel2,panel3,panel4,panel5,panel6,panel7;

private JButton selectDic,beginCheck;  // 选择字典,开始检测

private JLabel domainSuffix,custom,progress,result;  //域名后缀,自定义后缀,探测进度,结果

private JFileChooser dicChooser;  //字典选择

private JTextField customJTextField;  //自定义

private JScrollPane progressPane,resultPane;  //进度面板和结果面板

private JTextArea progressJtJTextArea,resultJTextArea;  //同上

private JCheckBox[] suffixCheckBoxs = new JCheckBox[15];  //域名后缀多项选择框

private JMenuBar jMenuBar;

private JMenu help;

private JMenuItem author,contact,version,readme;

private JPopupMenu outPutData;  //导出数据

private JMenuItem availableDomains,timeOutDomains,allDomains;  //可用域名,超时域名,全部域名

private Font menuFont = new Font("宋体", Font.LAYOUT_NO_LIMIT_CONTEXT, 14);  //菜单字体

private Font contentFont = new Font("宋体", Font.LAYOUT_NO_LIMIT_CONTEXT, 16);  //正文字体

private String dicName = "",cu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值