优化核心逻辑
This commit is contained in:
parent
b51d64644f
commit
18ab5ae4ef
@ -10,6 +10,9 @@
|
|||||||
克隆项目仓库:
|
克隆项目仓库:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
apt-get install ipset
|
||||||
|
apt-get install libpcap-dev
|
||||||
|
|
||||||
git clone https://git.aixiao.me/aixiao/DenyIP-go.git
|
git clone https://git.aixiao.me/aixiao/DenyIP-go.git
|
||||||
cd DenyIP-go
|
cd DenyIP-go
|
||||||
```
|
```
|
||||||
|
2
ipset.go
2
ipset.go
@ -81,7 +81,7 @@ func Is_Name_Ipset(setName string) int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Is_Ip_Ipset(ip 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()
|
err := cmd.Run()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
21
main.go
21
main.go
@ -175,14 +175,6 @@ func runMainProcess() { // 主进程逻辑
|
|||||||
e1 := IpList.Front() // 获取链表第一个元素
|
e1 := IpList.Front() // 获取链表第一个元素
|
||||||
region, _ := ip2region(e1.Value.(net.IP).String()) // 离线Ip位置库初步判断地域
|
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 Is_Ip_Ipset(e1.Value.(net.IP).String()) != 0 { // Ip不在 Ipset 集合中
|
||||||
if !strings.Contains(region, "中国") && !strings.Contains(region, "内网") { // 离线库判断不在中国内,尝试API判断
|
if !strings.Contains(region, "中国") && !strings.Contains(region, "内网") { // 离线库判断不在中国内,尝试API判断
|
||||||
if position, err := curl_(e1.Value.(net.IP).String()); err != nil { //API判断地域
|
if position, err := curl_(e1.Value.(net.IP).String()); err != nil { //API判断地域
|
||||||
@ -198,12 +190,19 @@ func runMainProcess() { // 主进程逻辑
|
|||||||
IpList.Remove(e1)
|
IpList.Remove(e1)
|
||||||
}
|
}
|
||||||
} else { // 在 Ipset 集合中
|
} 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)
|
IpList.Remove(e1)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("Ip 链表长度:%d\n", IpList.Len()) // 链表长度
|
log.Printf(" 当前Ip链表长度:%d, Ipset名:%s, 长:%d\n", IpList.Len(), IPSET_NAME, func() int { // 打印 当前 Ipset 链长度
|
||||||
time.Sleep(2 * time.Second)
|
_len, _err := NumIPSet(IPSET_NAME)
|
||||||
|
if _err == nil {
|
||||||
|
return _len
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}())
|
||||||
|
|
||||||
|
time.Sleep(1 * time.Second)
|
||||||
}
|
}
|
||||||
IpMutex.Unlock() // 链表解锁互斥锁
|
IpMutex.Unlock() // 链表解锁互斥锁
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user