初步支持禁止国内省份地域
This commit is contained in:
8
main.go
8
main.go
@@ -312,9 +312,12 @@ func RunMainProcess() { // 主进程逻辑
|
||||
goto next
|
||||
}
|
||||
|
||||
REGION := "中国 内网" // 默认地域
|
||||
|
||||
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)
|
||||
|
||||
if position, err := curl_(ipStr); err != nil { // 使用 API 判断地域
|
||||
@@ -322,7 +325,8 @@ 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 集合
|
||||
|
||||
// 钉钉告警,废弃!钉钉可能限制文本长度,和发送次数!
|
||||
|
||||
31
region_name_match.go
Normal file
31
region_name_match.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// SplitBySpace 按空格分割字符串
|
||||
func SplitBySpace(s string) []string {
|
||||
return strings.Split(s, " ")
|
||||
}
|
||||
|
||||
// ContainsPart 判断 target 是否包含 regionParts 中的任意片段(模糊匹配)
|
||||
func ContainsPart(target string, REGION string) bool {
|
||||
regionParts := SplitBySpace(REGION)
|
||||
|
||||
for _, rp := range regionParts {
|
||||
//fmt.Println("regionParts:", rp)
|
||||
if strings.Contains(target, rp) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
func main() {
|
||||
REGION := "中国 内网"
|
||||
|
||||
fmt.Println("结果1:", ContainsPart("美国", REGION)) // true
|
||||
}
|
||||
*/
|
||||
@@ -1,2 +1,2 @@
|
||||
127.0.0.1
|
||||
158.101.117.243
|
||||
132.145.154.72
|
||||
|
||||
Reference in New Issue
Block a user