diff --git a/cap.go b/cap.go index 827b224..26d9352 100644 --- a/cap.go +++ b/cap.go @@ -93,7 +93,7 @@ func startPacketCapture() { // 创建数据包源,用于从网络接口读取数据包 packetSource := gopacket.NewPacketSource(handle, handle.LinkType()) - fmt.Printf("正在监听网络接口 %s, 使用过滤器 '%s'...\n", *InterfaceName, *Protocol) + log.Printf(" 正在监听网络接口 %s, 使用过滤器 '%s'...\n", *InterfaceName, *Protocol) // 创建信号通道,用于捕获中断信号 sigChan := make(chan os.Signal, 1) diff --git a/denyip b/denyip index ca82719..e21dfcd 100644 Binary files a/denyip and b/denyip differ diff --git a/embed.go b/embed.go index 4172cf7..7779e4f 100644 --- a/embed.go +++ b/embed.go @@ -4,6 +4,7 @@ import ( "embed" "fmt" "io/fs" + "log" "os" "path/filepath" ) @@ -31,7 +32,7 @@ func releaseEmbeddedDir(efs embed.FS, embedPath string, targetDir string) error // 如果文件已存在就跳过(可选) if _, err := os.Stat(targetPath); err == nil { - fmt.Printf("文件已存在: %s,跳过写入\n", targetPath) + log.Printf(" 文件已存在: %s, 跳过写入\n", targetPath) return nil } @@ -40,27 +41,27 @@ func releaseEmbeddedDir(efs embed.FS, embedPath string, targetDir string) error return fmt.Errorf("写入文件失败: %w", err) } - fmt.Printf("释放: %s → %s\n", path, targetPath) + log.Printf(" 释放: %s → %s\n", path, targetPath) return nil }) } func embed_ip2region() { - fmt.Println("正在释放 ip2region 数据...") + log.Println(" 正在释放 ip2region 数据...") err := releaseEmbeddedDir(embeddedFS, "ip2region", "ip2region") if err != nil { - fmt.Println("释放失败:", err) + log.Println(" 释放失败:", err) os.Exit(1) } - fmt.Println("释放完成,程序继续执行...") + log.Println(" 释放完成,程序继续执行...") // 你可以在这里使用 ip2region.xdb 文件了,例如: if _, err := os.Stat("ip2region/ip2region.xdb"); err == nil { - fmt.Println("✅ 确认 ip2region.xdb 已成功写出") + log.Println(" ✅ 确认 ip2region.xdb 已成功写出") // 这里可以调用 ip2region 逻辑加载它 } else { - fmt.Println("❌ 找不到 ip2region.xdb") + log.Println(" ❌ 找不到 ip2region.xdb") } } diff --git a/local_addr.go b/local_addr.go index 56b42f4..4f395b4 100644 --- a/local_addr.go +++ b/local_addr.go @@ -3,6 +3,7 @@ package main import ( "fmt" "io" + "log" "net" "net/http" "strings" @@ -29,6 +30,6 @@ func GetLocalIpv4Addr() string { return "NULL" } - fmt.Printf("公网IP: %s\n", ipStr) + log.Printf(" 公网IP: %s\n", ipStr) return ipStr } diff --git a/main.go b/main.go index d0a4846..2b04a3b 100644 --- a/main.go +++ b/main.go @@ -67,7 +67,7 @@ func StartChildProcess() (*exec.Cmd, error) { if err := cmd.Start(); err != nil { return nil, fmt.Errorf("启动子进程失败: %w", err) } - fmt.Printf("子进程已启动, PID: %d\n", cmd.Process.Pid) + log.Printf(" 子进程已启动, PID: %d\n", cmd.Process.Pid) return cmd, nil } @@ -224,7 +224,7 @@ func loadFromFile(filePath string, logMessage string) error { } func InitMap() { - if err := loadFromFile("cn.json", " Map 已成功从文件加载"); err != nil { + if err := loadFromFile("cn.json", " Map 已成功从文件加载"); err != nil { log.Fatalf(" 加载 Map 失败: %v", err) } @@ -257,7 +257,7 @@ func WriteLocalAddr() { func RunMainProcess() { // 主进程逻辑 - fmt.Println("主进程启动...") + log.Println(" 主进程启动...") WriteLocalAddr() // 将本机外网地址加入到已处理集合中 @@ -302,11 +302,11 @@ func RunMainProcess() { // 主进程逻辑 setName, err := RemoveIPIfInSets("root", MAX_IPSET_NAME, ipStr) if err != nil { - log.Printf(" %s 删除 IP 出错: %v\n", ipStr, err) + log.Printf(" %s 删除 IP 出错: %v\n", ipStr, err) } else if setName != "" { - log.Printf(" %s 已从 %s 中移除 \n", ipStr, setName) + log.Printf(" %s 已从 %s 中移除 \n", ipStr, setName) } else { - log.Printf(" %s 不在任何 IPSet 中,无需移除\n", ipStr) + log.Printf(" %s 不在任何 IPSet 中,无需移除\n", ipStr) } goto next @@ -316,7 +316,7 @@ func RunMainProcess() { // 主进程逻辑 if Is_Ip_Ipset(ipStr) != 0 { // IP 不在 ipset 集合中 - //if !strings.Contains(region, "中国") && !strings.Contains(region, "内网") { // 离线库判断不在中国内 + //if !strings.Contains(region, "中国") && !strings.Contains(region, "内网") { // 离线库判断不在中国内 if !ContainsPart(region, REGION) { log.Printf("\033[33m [%s %s] 离线库为国外, 进一步API判断\033[0m\n", ipStr, region) @@ -325,13 +325,12 @@ func RunMainProcess() { // 主进程逻辑 } else { log.Printf("\033[31m [%s %s]\033[0m\n\n", ipStr, position) // 打印地域 - //if !strings.Contains(position, "中国") && !strings.Contains(position, "内网") { // API 判断为国外 + //if !strings.Contains(position, "中国") && !strings.Contains(position, "内网") { // API 判断为国外 if !ContainsPart(region, REGION) { AddIPSet(IPSET_NAME, ipStr) // 添加 IP 到 ipset 集合 // 钉钉告警,废弃!钉钉可能限制文本长度,和发送次数! // warning_ding(ipStr, position) // 警告 IP 地域 - } else { log.Printf("\033[33m %s 离线库为国外, API 判断为国内, 标记为已处理\033[0m\n", ipStr) @@ -342,7 +341,7 @@ func RunMainProcess() { // 主进程逻辑 // 写入json文件 if err := saveMapToFile("cn.json"); err != nil { - log.Printf("实时保存 Map 失败: %v", err) + log.Printf(" 实时保存 Map 失败: %v", err) } } } @@ -399,7 +398,7 @@ func RunMainProcess() { // 主进程逻辑 ProcessedMutex.Unlock() // 打印日志,表示本次清理已完成 - log.Println(" 已清理过期 ProcessedIPMap 项") + log.Println(" 已清理过期 ProcessedIPMap 项") } }() @@ -408,7 +407,7 @@ func RunMainProcess() { // 主进程逻辑 for { time.Sleep(1 * time.Minute) // 每 10 分钟自动刷新 if err := LoadWhiteList("whitelist.txt"); err != nil { - log.Printf(" 刷新白名单失败: %v", err) + log.Printf(" 刷新白名单失败: %v", err) } } }() @@ -511,9 +510,9 @@ func main() { // 加载白名单 err := LoadWhiteList("whitelist.txt") if err != nil { - log.Fatalf(" whiteList Map 加载白名单失败: %v", err) + log.Fatalf(" whiteList Map 加载白名单失败: %v", err) } else { - log.Println(" whiteList Map 白名单加载成功") + log.Println(" whiteList Map 白名单加载成功") } // 守护进程模式 diff --git a/whitelist.go b/whitelist.go index 31618f8..75618cb 100644 --- a/whitelist.go +++ b/whitelist.go @@ -16,7 +16,7 @@ var ( func LoadWhiteList(filename string) error { // 如果文件不存在,直接返回 nil 表示无需加载 if _, err := os.Stat(filename); os.IsNotExist(err) { - log.Printf(" 白名单文件 %s 不存在,跳过加载。", filename) + log.Printf(" 白名单文件 %s 不存在,跳过加载。", filename) return nil } @@ -45,6 +45,6 @@ func LoadWhiteList(filename string) error { whiteList = tempList whiteListLock.Unlock() - log.Println("白名单已加载完成") + log.Println(" 白名单已加载完成") return nil }