Skip to content

Commit fc91715

Browse files
committed
发布开源版本
1 parent 80f8353 commit fc91715

30 files changed

+7987
-2
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.github/workflows/release.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*.*.*'
7+
8+
jobs:
9+
release:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v4
14+
with:
15+
fetch-depth: 0
16+
17+
- name: Set up Go
18+
uses: actions/setup-go@v4
19+
with:
20+
go-version: '1.22'
21+
22+
- name: Run GoReleaser
23+
uses: goreleaser/goreleaser-action@v5
24+
with:
25+
version: latest
26+
args: release --clean
27+
env:
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,6 @@ go.work.sum
2323

2424
# env file
2525
.env
26+
.idea/*
27+
config - 副本.yaml
28+
*.txt
102 KB
Loading
132 KB
Loading
118 KB
Loading
126 KB
Loading
132 KB
Loading

README.md

Lines changed: 131 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,131 @@
1-
# ChechCdn
2-
检查IP是否为CDN节点的工具
1+
![CheckCdn](https://socialify.git.ci/YouChenJun/CheckCdn/image?description=1&font=Source%20Code%20Pro&forks=1&issues=1&language=1&logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F53772533%3Fs%3D400%26u%3D1c3b2a32c041e46c072ff69c8866f6bf96963180%26v%3D4&name=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Dark)
2+
3+
# 一、工具概述
4+
5+
​ 在日常的渗透测试中,往往从IP、C段入手可以发现到很多不一样的资产信息。快速筛选出真实IP并且整理为C段扫描是其中的一个攻击方式,在面对大量IP资产的时候取出CDN节点、负载均衡节点尤为重要。
6+
7+
>​ 本工具实现原理就是调用各大云厂商的对应CDN API,查询IP是否为该厂商的CDN节点,最后由ipdb和收集到的IP c段做数据兜底。现已支持的云厂商有
8+
>
9+
>- [火山云](https://www.volcengine.com/docs/6454/71436)
10+
>- [腾讯云](https://cloud.tencent.com/document/api/228/37868)
11+
>- [阿里云](https://api.aliyun.com/document/Cdn/2018-05-10/DescribeIpInfo)
12+
>- [百度云](https://cloud.baidu.com/doc/CDN/s/8jwvyeunq)
13+
>- [华为云](https://support.huaweicloud.com/api-cdn/ShowIpInfo.html)
14+
>
15+
>详细的说明见本文的`四、实现原理`
16+
17+
# 二、工具使用
18+
19+
​ 首次运行程序后会在该目录下创建`config.yaml`配置文件,请查看本文档的**四、实现原理**进行配置
20+
21+
```
22+
-config string
23+
配置文件夹路径 (default "config.yaml")
24+
-delayed float
25+
查询延迟时间,默认0s
26+
-input string
27+
需要检测的ip文件列表
28+
-output string
29+
不是CDN节点的ip文本列表 (default "nocdn.txt")
30+
```
31+
32+
​ 程序运行后会自动进行调取api检测,非CDN的ip结果内容默认在`nocdn.txt`
33+
34+
![image-20241012105159698](README.assets/image-20241012105159698.png)
35+
36+
​ 由于部分厂商的接口短时间内频繁调取会出现拦截,请根据自己的实际情况配置`-delayed`参数
37+
38+
# 三、秘钥配置
39+
40+
![image-20241012115120175](README.assets/image-20241012115120175.png)
41+
42+
​ 这里的秘钥指的是云厂商的AK、SK,请根据不同厂商按照链接开启并且获取。**AK、SK获取后请保存,高权限的AKSK可以调取云平台的相关服务、请求。**
43+
44+
​ 下面操作部分云厂商需要开启CDN服务,其中涉及到开通需要充值一定数额才可使用。根据此教程合理配置,重置的金额可在开通后退费,并且后续不会产生CDN的费用。**,对于配置CDN其他的功能出现的扣费问题,本人和此教程不承担任何责任。**
45+
46+
​ 下列操作在创建秘钥的时候会提示是否创建子账号,建议使用不创建子账号,使用主账号的秘钥。若云账号上有大量的服务器、资源等,建议创建一个新的个人账号完成下面操作。
47+
48+
## 腾讯云
49+
50+
[密钥管理 - 常用工具 - 人脸核身 - 控制台 (tencent.com)](https://console.cloud.tencent.com/cam/capi)
51+
52+
​ 获取AK、SK后无需开通CDN的服务即可调用相关API
53+
54+
## 火山云
55+
56+
[访问控制-火山引擎 (volcengine.com)](https://console.volcengine.com/iam/keymanage/)
57+
58+
![image-20241012115520588](README.assets/image-20241012115520588.png)
59+
60+
[内容分发网络 (volcengine.com)](https://console.volcengine.com/cdn/homepage)
61+
62+
​ 开通CDN服务,需要给账户内充值100元,在开通服务后可以退还
63+
64+
## 阿里云
65+
66+
[RAM 访问控制 (aliyun.com)](https://ram.console.aliyun.com/profile/access-keys)
67+
68+
​ 获取AK、SK即可,无需开通CDN服务
69+
70+
## 百度云
71+
72+
[百度智能云-管理中心 (baidu.com)](https://console.bce.baidu.com/iam/#/iam/accesslist)
73+
74+
​ 获取AK、SK即可,无需开通CDN服务
75+
76+
## 华为云
77+
78+
[获取AK/SK_API签名指南_华为云 (huaweicloud.com)](https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html)
79+
80+
​ 华为云需要账户内充值1k后开启CDN服务,并且配置一个加速域名。在开启后可退费1k
81+
82+
[CDN - 控制台 (huaweicloud.com)](https://console.huaweicloud.com/cdn/?region=cn-north-4&locale=zh-cn#/cdn/overview)
83+
84+
​ 需要准备一个自己的域名
85+
86+
![image-20241012144528659](README.assets/image-20241012144528659.png)
87+
88+
​ 注意配置源站地址
89+
90+
![image-20241012144611907](README.assets/image-20241012144611907.png)
91+
92+
​ 此处是因为华为云的产品特性,只有开启了加速域名才可以使用API查询出数据。
93+
94+
# 四、实现原理
95+
96+
​ 本工具实现原理就是调用各大云厂商的对应CDN API,查询IP是否为该厂商的CDN节点,最后由ipdb和收集到的IP c段做数据兜底。现已支持的云厂商有
97+
98+
- [火山云](https://www.volcengine.com/docs/6454/71436)
99+
- [腾讯云](https://cloud.tencent.com/document/api/228/37868)
100+
- [阿里云](https://api.aliyun.com/document/Cdn/2018-05-10/DescribeIpInfo)
101+
- [百度云](https://cloud.baidu.com/doc/CDN/s/8jwvyeunq)
102+
- [华为云](https://support.huaweicloud.com/api-cdn/ShowIpInfo.html)
103+
104+
​ 如果各位师傅发现其他云厂商有类似的API接口,欢迎提交issue和pr。
105+
106+
**部分云厂商调取API需要开启CDN的服务,有的需要账户内需要余额方可开启!本人测试上述云尝试可以充值开启服务后提现**
107+
108+
​ 开启CDN服务单纯使用本工具是不需要任何资费,对于配置CDN其他的功能出现的扣费问题,本人和此教程不承担任何责任。
109+
110+
​ 最后的数据兜底来源于[ipipfree.ipdb](https://www.ipip.net/)和收集的部分C段,如果师傅们有最新的数据文件可以提交issue和pr。
111+
112+
# 五、TODO
113+
114+
- 输出json格式
115+
- 优化并行逻辑
116+
- httpx等工具适配
117+
118+
# 六、免责说明
119+
120+
1. 如果您下载、安装、使用、修改本工具及相关代码,即表明您信任本工具
121+
2. 在使用本工具时造成对您自己或他人任何形式的损失和伤害,我们不承担任何责任
122+
3. 如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任
123+
4. 请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款,并选择接受或不接受
124+
5. 除非您已阅读并接受本协议所有条款,否则您无权下载、安装或使用本工具
125+
6. 您的下载、安装、使用等行为即视为您已阅读并同意上述协议的约束
126+
127+
128+
129+
# Star History
130+
131+
![Star History Chart](https://api.star-history.com/svg?repos=YouChenJun/CheckCdn&type=Date)

0 commit comments

Comments
 (0)