oschwald / geoip2-golang

Unofficial MaxMind GeoIP2 Reader for Go
ISC License
1.82k stars 192 forks source link

Consider adding ConnectionType and ISP Examples? #23

Open DavidPowersOG opened 7 years ago

DavidPowersOG commented 7 years ago

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") }

pavel-odintsov commented 1 year ago

Awesome, thank you so much for sharing these examples. I appreciate it.