优化核心逻辑
This commit is contained in:
21
main.go
21
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() // 链表解锁互斥锁
|
||||
|
||||
|
||||
Reference in New Issue
Block a user