diff --git a/README.md b/README.md index e1a1ca8..8cfa33a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,9 @@ 克隆项目仓库: ```bash +apt-get install ipset +apt-get install libpcap-dev + git clone https://git.aixiao.me/aixiao/DenyIP-go.git cd DenyIP-go ``` diff --git a/denyip b/denyip index c45feca..58605f6 100644 Binary files a/denyip and b/denyip differ diff --git a/ipset.go b/ipset.go index b894704..ae5da88 100644 --- a/ipset.go +++ b/ipset.go @@ -81,7 +81,7 @@ func Is_Name_Ipset(setName string) int { } func Is_Ip_Ipset(ip string) int { - cmd := exec.Command("sh", "-c", fmt.Sprintf("ipset list | grep \"%s\" | cut -d ':' -f 2 | sed 's/ //g'", ip)) + cmd := exec.Command("sh", "-c", fmt.Sprintf("ipset list | grep \"%s\"", ip)) err := cmd.Run() if err != nil { diff --git a/main.go b/main.go index 9a467fd..724c006 100644 --- a/main.go +++ b/main.go @@ -175,14 +175,6 @@ func runMainProcess() { // 主进程逻辑 e1 := IpList.Front() // 获取链表第一个元素 region, _ := ip2region(e1.Value.(net.IP).String()) // 离线Ip位置库初步判断地域 - log.Printf("当前 Ipset 链 %s %d\n", IPSET_NAME, func() int { // 打印 当前 Ipset 链长度 - _len, _err := NumIPSet(IPSET_NAME) - if _err == nil { - return _len - } - return 0 - }()) - if Is_Ip_Ipset(e1.Value.(net.IP).String()) != 0 { // Ip不在 Ipset 集合中 if !strings.Contains(region, "中国") && !strings.Contains(region, "内网") { // 离线库判断不在中国内,尝试API判断 if position, err := curl_(e1.Value.(net.IP).String()); err != nil { //API判断地域 @@ -198,12 +190,19 @@ func runMainProcess() { // 主进程逻辑 IpList.Remove(e1) } } else { // 在 Ipset 集合中 - log.Printf("\033[31m%s 已经在 Ipset 集合中\033[0m\n", e1.Value.(net.IP).String()) + log.Printf("\033[31m %s 在 Ipset 集合中 \033[0m\n", e1.Value.(net.IP).String()) IpList.Remove(e1) } - log.Printf("Ip 链表长度:%d\n", IpList.Len()) // 链表长度 - time.Sleep(2 * time.Second) + log.Printf(" 当前Ip链表长度:%d, Ipset名:%s, 长:%d\n", IpList.Len(), IPSET_NAME, func() int { // 打印 当前 Ipset 链长度 + _len, _err := NumIPSet(IPSET_NAME) + if _err == nil { + return _len + } + return 0 + }()) + + time.Sleep(1 * time.Second) } IpMutex.Unlock() // 链表解锁互斥锁