geoip.go 428 B

123456789101112131415161718192021222324
  1. package third
  2. import (
  3. "github.com/oschwald/geoip2-golang"
  4. "net"
  5. )
  6. func GetCountryByIP(ip string) (string, error) {
  7. // 打开GeoIP数据库
  8. db, err := geoip2.Open("GeoLite2-Country.mmdb")
  9. if err != nil {
  10. return "default", err
  11. }
  12. defer db.Close()
  13. // 查询IP地址
  14. country, err := db.Country(net.ParseIP(ip))
  15. if err != nil {
  16. return "default", err
  17. }
  18. // 返回国家名称
  19. return country.Country.IsoCode, nil
  20. }