@@ -44,14 +44,14 @@ type Configure struct {
44
44
}
45
45
46
46
func ReadConfig () {
47
- data , err := ioutil .ReadFile ("./config/config.json" )
47
+ data , _ := ioutil .ReadFile ("./config/config.json" )
48
+
49
+ // 解码 JSON 数据
50
+ err := json .Unmarshal (data , & Config )
48
51
if err != nil {
49
- fmt .Println ("请配置config.json !" )
52
+ fmt .Println ("config.json配置出错 !" )
50
53
os .Exit (1 )
51
54
}
52
-
53
- // 解码 JSON 数据
54
- json .Unmarshal (data , & Config )
55
55
}
56
56
57
57
func ReadFile (filename string ) {
@@ -66,21 +66,20 @@ func ReadFile(filename string) {
66
66
line := strings .TrimSpace (scan .Text ())
67
67
wg .Add (1 )
68
68
go Match (line , & wg )
69
- wg .Wait ()
70
69
}
71
70
wg .Wait ()
72
71
file .Close ()
73
72
}
74
73
75
74
func Match (url string , wg * sync.WaitGroup ) {
76
75
defer wg .Done ()
77
- mu .Lock ()
78
- defer mu .Unlock ()
79
76
80
77
ipRegex := regexp .MustCompile (`\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:/\d{1,2}|)` )
81
78
ip := ipRegex .FindString (url )
82
79
if ip != "" {
80
+ mu .Lock ()
83
81
Irs = append (Irs , ip )
82
+ mu .Unlock ()
84
83
}
85
84
86
85
if strings .Contains (url , "http://" ) || strings .Contains (url , "https://" ) {
@@ -97,7 +96,9 @@ func Match(url string, wg *sync.WaitGroup) {
97
96
subDomainRegex := regexp .MustCompile (`([a-z0-9][a-z0-9\-]*?\.(?:\w{2,4})(?:\.(?:cn|hk))?)$` )
98
97
subDomain := subDomainRegex .FindString (domain )
99
98
if subDomain != "" && ! Contains (Drs , subDomain ) {
99
+ mu .Lock ()
100
100
Drs = append (Drs , subDomain )
101
+ mu .Unlock ()
101
102
}
102
103
}
103
104
}
0 commit comments