判断网站是否托管于Github-Pages (数据源于timqian/chinese-independent-blogs)
- main.py 用于从 timqian/chinese-independent-blogs 批量自动判断网站是否为 GH-Pages
- sigle-check.py 手动输入域名/链接来判断网站是否为 GH-Pages
- gh-pages-check.py
- 使用
dnspython
库完成 DNS 查询 - 遍历查询域名的
A
,CNAME
,AAAA
记录, 任一查询结果符合 GitHub Pages 特征则返回结果 - 支持通过命令行选项设置 nameservers
- 可使用
--urls
选项直接输入 URL 查询 - 可使用
--csv
读取远程或本地的.csv
文件查询,.csv
文件格式需要与 blogs-original.csv 一致 - 可使用
--output
选项可将查询结果写入文件 - 使用
--help
选项查看脚本帮助信息
- 使用
输出结果:gh-domains.txt
- main分支的脚本,采用DNS解析到的IP来简易判断是不是Github采用的IP范围。Github有提供CIDR格式的IP列表,我懒得转换CIDR,直接取IP的前3位和Github的CIDR格式的IP列表直接字符串匹配,所以脚本会有很小很小很小的概率出现判断错误(把不是Github的IP当成是Github的IP)。但实际跑了几百个域名,没有发现这样的情况。
- header分支的脚本,根据http请求回传的header中是否有
Server: Github.com
字段来判断是不是Github托管的网站,判断几乎不可能出错,但是脚本跑得慢(比IP方法慢4倍,毕竟要握手)。