From a450bcdcba3646fa006beaa9b733b44046b92797 Mon Sep 17 00:00:00 2001 From: d4m1ts Date: Tue, 9 Aug 2022 09:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9F=9F=E5=90=8D=E5=92=8CIP?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=BB=93=E6=9E=9C=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- main.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 61368ed..6d9d149 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ > **重要:** > -> ~~需要下载 `GeoLite2-ASN.mmdb` 放到执行目录下,`cdnCheck_go`会自动从运行目录读取该mmdb文件~~ (已内嵌到文件中,无需单独下载) +> ~~需要下载 [`GeoLite2-ASN.mmdb`](https://github.com/damit5/cdnCheck_go/raw/main/GeoLite2-ASN.mmdb) 放到执行目录下,`cdnCheck_go`会自动从运行目录读取该mmdb文件~~ (已内嵌到文件中,无需单独下载) ### 最简单 diff --git a/main.go b/main.go index d95a5f3..aae842f 100644 --- a/main.go +++ b/main.go @@ -20,11 +20,13 @@ var semaphore *gsema.Semaphore var cdnResult []string // 保存CDN的域名 var nonCdnDomainResult []string // 保存无CDN的域名 var nonCdnIPResult []string // 保存无CDN的IP +var allDomainIP []string // 保存所有的域名解析的IP,不然可能找到IP的洞,但是不知道是哪个域名对过来的 // 传入的参数 var target string var nonCdnDomainSavePath string var nonCdnIPSavePath string +var allDomainIPSavePath string var threads int func checkCDN(domain string) { @@ -60,6 +62,7 @@ func checkCDN(domain string) { log.Println(domain, err) return } + allDomainIP = append(allDomainIP, fmt.Sprintf("%s ==> %v", domain, ips)) // 进行多种方法的CDN验证 for _, ip := range ips { @@ -115,6 +118,7 @@ func flagInit() { flag.StringVar(&target, "t", "", "需要扫描的文件") flag.StringVar(&nonCdnDomainSavePath, "nd", "", "无CDN域名保存地址,不保存置空即可") flag.StringVar(&nonCdnIPSavePath, "ni", "", "无CDN IP保存地址,不保存置空即可") + flag.StringVar(&allDomainIPSavePath, "as", "", "所有域名和IP的映射关系,不保存置空即可") flag.IntVar(&threads, "thread", 20, "并发数") flag.Parse() } @@ -164,4 +168,14 @@ func main() { } write.Flush() } + + if allDomainIPSavePath != "" { + openFile, _ := os.OpenFile(allDomainIPSavePath, os.O_TRUNC|os.O_WRONLY|os.O_CREATE, 0666) + defer openFile.Close() + write := bufio.NewWriter(openFile) + for _, ipdomain := range removeRepeatedElement(allDomainIP) { + write.WriteString(ipdomain + "\n") + } + write.Flush() + } } \ No newline at end of file