Files
qqwry/qqwry_model.go

54 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package qqwry
import (
"strings"
)
// Location IP位置信息
// 字段: Country 国家, Province 省份, City 城市, District 区县, ISP 运营商, IP IP地址
type Location struct {
Country string // 国家
Province string // 省份
City string // 城市
District string // 区县
ISP string // 运营商
IP string // IP地址
}
// Clone 克隆Location对象
// 返回: newLocation 克隆后的对象
func (l *Location) Clone() *Location {
return &Location{
Country: l.Country,
Province: l.Province,
City: l.City,
District: l.District,
ISP: l.ISP,
IP: l.IP,
}
}
// SplitResult 按照调整后的纯真社区版IP库地理位置格式返回结果
// 入参: addr 地址信息, isp 运营商信息, ipv4 IP地址
// 返回: location 位置信息
func SplitResult(addr string, isp string, ipv4 string) (location *Location) {
location = &Location{ISP: isp, IP: ipv4}
splitList := strings.Split(addr, "")
for i := 0; i < len(splitList); i++ {
switch i {
case 0:
location.Country = splitList[i]
case 1:
location.Province = splitList[i]
case 2:
location.City = splitList[i]
case 3:
location.District = splitList[i]
}
}
if location.Country == "局域网" {
location.ISP = location.Country
}
return
}