init
This commit is contained in:
69
utils/external/index.go
vendored
Normal file
69
utils/external/index.go
vendored
Normal 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(),
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user