Use ISO for Country

This commit is contained in:
2025-03-14 19:45:11 +00:00
parent f700b904e0
commit f82f34541c
2 changed files with 24 additions and 40 deletions
+3 -17
View File
@@ -16,12 +16,10 @@ import (
type DataStruct struct { type DataStruct struct {
IP *string `json:"ip"` IP *string `json:"ip"`
Hostname *string `json:"hostname"` Hostname *string `json:"hostname"`
ASN *string `json:"asn"`
Org *string `json:"org"` Org *string `json:"org"`
City *string `json:"city"` City *string `json:"city"`
Region *string `json:"region"` Region *string `json:"region"`
Country *string `json:"country"` Country *string `json:"country"`
Continent *string `json:"continent"`
Timezone *string `json:"timezone"` Timezone *string `json:"timezone"`
Loc *string `json:"loc"` Loc *string `json:"loc"`
} }
@@ -85,10 +83,6 @@ func LookupIPData(geoIP *db.GeoIPManager, ip net.IP) *DataStruct {
IsoCode string `maxminddb:"iso_code"` IsoCode string `maxminddb:"iso_code"`
Names map[string]string `maxminddb:"names"` Names map[string]string `maxminddb:"names"`
} `maxminddb:"country"` } `maxminddb:"country"`
Continent struct {
Code string `maxminddb:"code"`
Names map[string]string `maxminddb:"names"`
} `maxminddb:"continent"`
Location struct { Location struct {
Latitude float64 `maxminddb:"latitude"` Latitude float64 `maxminddb:"latitude"`
Longitude float64 `maxminddb:"longitude"` Longitude float64 `maxminddb:"longitude"`
@@ -120,21 +114,13 @@ func LookupIPData(geoIP *db.GeoIPManager, ip net.IP) *DataStruct {
hostname = []string{""} hostname = []string{""}
} }
var sd *string
if len(cityRecord.Subdivisions) > 0 {
name := cityRecord.Subdivisions[0].Names["en"]
sd = &name
}
data := &DataStruct{ data := &DataStruct{
IP: ToPtr(ip.String()), IP: ToPtr(ip.String()),
Hostname: ToPtr(strings.TrimSuffix(hostname[0], ".")), Hostname: ToPtr(strings.TrimSuffix(hostname[0], ".")),
ASN: ToPtr(fmt.Sprintf("%d", asnRecord.AutonomousSystemNumber)), Org: ToPtr(fmt.Sprintf("AS%d %s", asnRecord.AutonomousSystemNumber, asnRecord.AutonomousSystemOrganization)),
Org: ToPtr(asnRecord.AutonomousSystemOrganization),
City: ToPtr(cityRecord.City.Names["en"]), City: ToPtr(cityRecord.City.Names["en"]),
Region: sd, Region: ToPtr(cityRecord.Subdivisions[0].Names["en"]),
Country: ToPtr(cityRecord.Country.Names["en"]), Country: ToPtr(cityRecord.Country.IsoCode),
Continent: ToPtr(cityRecord.Continent.Names["en"]),
Timezone: ToPtr(cityRecord.Location.Timezone), Timezone: ToPtr(cityRecord.Location.Timezone),
Loc: ToPtr(fmt.Sprintf("%.4f,%.4f", cityRecord.Location.Latitude, cityRecord.Location.Longitude)), Loc: ToPtr(fmt.Sprintf("%.4f,%.4f", cityRecord.Location.Latitude, cityRecord.Location.Longitude)),
} }
-2
View File
@@ -102,12 +102,10 @@ func (s *Server) Shutdown() {
var fieldMap = map[string]func(*common.DataStruct) *string{ var fieldMap = map[string]func(*common.DataStruct) *string{
"ip": func(d *common.DataStruct) *string { return d.IP }, "ip": func(d *common.DataStruct) *string { return d.IP },
"hostname": func(d *common.DataStruct) *string { return d.Hostname }, "hostname": func(d *common.DataStruct) *string { return d.Hostname },
"asn": func(d *common.DataStruct) *string { return d.ASN },
"org": func(d *common.DataStruct) *string { return d.Org }, "org": func(d *common.DataStruct) *string { return d.Org },
"city": func(d *common.DataStruct) *string { return d.City }, "city": func(d *common.DataStruct) *string { return d.City },
"region": func(d *common.DataStruct) *string { return d.Region }, "region": func(d *common.DataStruct) *string { return d.Region },
"country": func(d *common.DataStruct) *string { return d.Country }, "country": func(d *common.DataStruct) *string { return d.Country },
"continent": func(d *common.DataStruct) *string { return d.Continent },
"timezone": func(d *common.DataStruct) *string { return d.Timezone }, "timezone": func(d *common.DataStruct) *string { return d.Timezone },
"loc": func(d *common.DataStruct) *string { return d.Loc }, "loc": func(d *common.DataStruct) *string { return d.Loc },
} }