This commit is contained in:
zyj
2025-09-13 10:22:49 +08:00
commit 002419a7ed
28 changed files with 1888 additions and 0 deletions

69
utils/external/index.go vendored Normal file
View File

@@ -0,0 +1,69 @@
package external
import (
"fmt"
"go-account-register/models"
"go-account-register/utils"
"time"
)
func GetIpInfo(ip string) models.Ip {
db := utils.GetDB()
var ipInfo models.Ip
if ip == "" {
var ipRequest utils.IpRequest
res, err := ipRequest.IpApi(ip)
if err != nil {
}
resIp := db.Model(&models.Ip{}).Where("query = ?", res.Query).First(&ipInfo)
if resIp.Error != nil {
createIp(res)
db.Model(&models.Ip{}).Where("query = ?", res.Query).First(&ipInfo)
return ipInfo
}
return ipInfo
}
resIp := db.Model(&models.Ip{}).Where("query = ?", ip).First(&ipInfo)
if resIp.Error != nil {
var ipRequest utils.IpRequest
res, err := ipRequest.IpApi(ip)
if err != nil {
}
createIp(res)
db.Model(&models.Ip{}).Where("query = ?", ip).First(&ipInfo)
return ipInfo
}
return ipInfo
}
func createIp(res utils.IPAPIResponse) {
db := utils.GetDB()
db.Model(&models.Ip{}).Create(&models.Ip{
As: res.As,
Asname: res.Asname,
City: res.City,
Continent: res.Continent,
ContinentCode: res.ContinentCode,
Country: res.Country,
CountryCode: res.CountryCode,
Currency: res.Currency,
District: res.District,
Hosting: utils.BoolToInt(res.Hosting),
Isp: res.Isp,
Lat: fmt.Sprint(res.Lat),
Lon: fmt.Sprint(res.Lon),
Mobile: utils.BoolToInt(res.Mobile),
Offset: fmt.Sprint(res.Offset),
Org: res.Org,
Proxy: utils.BoolToInt(res.Proxy),
Query: res.Query,
Region: res.Region,
RegionName: res.RegionName,
Timezone: res.Timezone,
Zip: res.Zip,
UpdateTime: time.Now().Unix(),
CreateTime: time.Now().Unix(),
})
}