is-github-page/README.md

21 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

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