批量查询域名是否备案域名以及域名解析

因为工作需要,需要查询域名备案,有时候需要查询一个或多个域名,有时候是需要给一整个文件内的域名进行判断是否备案与否,此外还需批量查询域名是否解析到我们的域名,但是 dig nslookup 这种域名只能查询单个域名,我总不能一个一个去 dig 看吧,这样太麻烦了。于是,写了个工具批量查询域名备案和域名解析的脚本。

github 仓库地址: https://github.com/monkey-wenjun/get_domain_info

实现思路

域名备案
从命令行获取仓库进行查询,可以是一个或多个,也可以从文件读取进行查询。

域名解析
从 命令行读取参数进行解析查询,或从文件读取列表去查询 A 记录、CNAME 记录和 NS 记录,并对结果进行去重。

脚本使用说明

源码开源但是备案查询接口调用的是 NowAPI 的,需要把get_single_filing_info 方法中的 appkey 或 sign 替换成你自己的。。或者使用其他接口。

环境

  • python 3

第三方模块安装

1
pip3 install -r requirements.txt

requirements.txt 内容如下:

1
2
3
4
dnspython3
argparse
requests
tldextract

查看帮助

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 #./get_domain_info.py

This is Get domain info Tools

usage: get_domain_info.py [-h] [-dl DOMAIN_LIST [DOMAIN_LIST ...]]
[-df DOMAIN_FILE]
[-rl RECORD_LIST [RECORD_LIST ...]]
[-rf RECORD_FILE] [-ip IP [IP ...]] [-a] [-u] [-v]

optional arguments:
-h, --help show this help message and exit
-dl DOMAIN_LIST [DOMAIN_LIST ...], --domain_list DOMAIN_LIST [DOMAIN_LIST ...]
Query single or multiple domain name filing
information.
-df DOMAIN_FILE, --domain_file DOMAIN_FILE
Query multiple domain name filing information as
files.
-rl RECORD_LIST [RECORD_LIST ...], --record_list RECORD_LIST [RECORD_LIST ...]
Query single or multiple domain name resolution.
-rf RECORD_FILE, --record_file RECORD_FILE
Query multiple domain name resolutions as files.
-ip IP [IP ...], --ip IP [IP ...]
Query IP attribution.
-a, --auth Show Auth Info.
-u, --update Update Tools.
-v, --version Show Version.

使用说明

不管是备案还是 DNS 查询,如果域名包含完整 URL 的,会自动过滤提取裸域后进行查询,例如查询备案:

1
2
➜  get_domain_info git:(master) ✗ ./get_domain_info.py -dl https://awen.me/post/18464.html
awen.me ALREADY_BEIAN

或是查询 DNS

1
2
3
./get_domain_info.py -rl https://awen.me/post/18464.html
Domain CNAME NS A
awen.me adrian.ns.cloudflare.com. 183.131.200.74,183.131.200.69,183.131.200.61,183.131.200.72,183.131.200.68

1.批量查询域名解析

1.获取单个或多个 域名的解析

1
./get_domain_info.py -rl 163yun.com www.163yun.com
  1. 从文件读取域名列表进行域名解析查询
1
./get_domain_info.py -rf ~/Downloads/domain.txt

从文件读取域名查询的,结果中会进行去重,有重复 IP 的只提取一个

2.查询备案

1.获取单个或多个域名备案(多个域名用空格分隔)

1
./get_domain_info.py -dl baidu.com awen.me

2.从文件读取域名列表进行备案查询

1
./get_domain_info.py -df ~/Downloads/domain.txt