fix: wrong IP value in some situations (#32)

This commit is contained in:
UUBulb
2024-06-25 22:08:28 +08:00
committed by GitHub
parent 81b774a7f0
commit fb86c89de7
2 changed files with 9 additions and 6 deletions
+6 -4
View File
@@ -100,21 +100,23 @@ func fetchGeoIP(servers []string, isV6 bool) geoIP {
continue
}
resp.Body.Close()
if err := ip.Unmarshal(body); err != nil {
newIP := geoIP{}
if err := newIP.Unmarshal(body); err != nil {
continue
}
// 没取到 v6 IP
if isV6 && !strings.Contains(ip.IP, ":") {
if isV6 && !strings.Contains(newIP.IP, ":") {
continue
}
// 没取到 v4 IP
if !isV6 && !strings.Contains(ip.IP, ".") {
if !isV6 && !strings.Contains(newIP.IP, ".") {
continue
}
// 未获取到国家码
if ip.CountryCode == "" {
if newIP.CountryCode == "" {
continue
}
ip = newIP
return ip
}
}