前两天我看中了一个域名处于即将删除的状态 委屈.png ,想着如果能监控域名能注册了给我发邮件就好了,于是就花了一晚上撸出了 CheckDomain 来帮我监控这个域名 太开心.png

2019-12-07T15:13:37.png

CheckDomain 是一个用来检查域名是否能注册的 Api,基于 Spring Boot 构建,使用了阿里云域名查询 Api;

可实现对域名状态查询,可注册监控等,并在可以注册的时候发送邮件通知。

也算是自己动手做的第一个完整的项目吧 笑眼.png
既然有了兴趣点,所以就准备把所学的知识给串一下,能用上的都用上,也算是学以致用吧~ 捂嘴笑.png

Github:https://github.com/noisky/CheckDomain

接口调用:

1、查看域名状态:

  • 请求方式:GET请求

    • 请求地址:/domain/{name}
    • 参数说明:

      • {name}: 查询的域名

2、查看域名状态并在可注册时发送邮件通知:

1)请求方式:GET请求

  • 请求地址:/domain/{name}/{email}/{querykey}
  • 参数说明:

    • {name}: 查询的域名
    • {email}: 接受通知的邮箱地址
    • querykey: 查询密码,在 yml 配置文件中设置

2)请求方式:POST请求

  • 请求地址:/domain/{name}
  • 参数说明:

    • {name}: 查询的域名
    • POST 提交的表单:

      • email: 接受通知的邮箱地址

      • querykey: 查询密码,在 yml 配置文件中设置
可以使用第三方监控(如阿里云监控)来请求 Api 来达到监控域名注册状态

现在已经实现了基本功能:

  • 检查域名是否能注册
  • 监控域名状态,如果可以注册,发送邮件通知
  • 使用 Freemarker 实现邮件模板的静态化
  • 使用 Logback 记录系统运行日志

TODO:

  • 编写前端页面,方便查询
  • 限制接口的调用频率
  • 统计并记录接口的调用次数,调用耗时等信息
  • 接入其他域名查询 Api
  • 自己实现域名 whois 查询(有生之年系列)

...

使用了万网域名查询接口:

接口地址:http://panda.www.net.cn/cgi-bin/check.cgi

接口采用HTTP,POST,GET协议

参数名称:area_domain 值为标准域名,例:xxx.com

返回 XML 结果说明:

返回字段说明
200表示接口返回成功
xxx.com表示当前检查的域名
210Domain name is available 表示域名可以注册
211Domain name is not available 表示域名已经注册
212Domain name is invalid 表示域名参数传输错误
213Time out 查询超时

注意:这个接口返回的数据虽然看起来是xml格式,但是响应头却是 text/plain 格式的,搞的我踩了好多深坑...
详见:记一次解决RestTemplate无法解析api返回的xml数据问题