Description
Something like this:
//mmdb ConnectionType
func GetConnectionType(ipStr string) string {
ipObj := net.ParseIP(ipStr)
reader := dbReader("./assets/GeoIP2-Connection-Type.mmdb")
defer reader.Close()
record, err := reader.ConnectionType(ipObj)
if err != nil {
logBadIp(err)
return "unknown"
} else {
return record.ConnectionType
}
}
//mmdb ISP
func GetIsp(ipStr string) (string, string) {
ipObj := net.ParseIP(ipStr)
dbIsp := dbReader("./assets/GeoIP2-ISP.mmdb")
defer dbIsp.Close()
record, err := dbIsp.ISP(ipObj)
if err != nil {
logBadIp(err)
return "unknown", "unknown"
} else {
return record.ISP, record.Organization
}
}
func dbReader(mmdbPath string) *geoip2.Reader {
dbConn, err := geoip2.Open(mmdbPath)
if err != nil {
log.Println(err)
}
return dbConn
}
func logBadIp(err error) {
log.Println(err)
log.Println("bad IP")
}
Activity