12345678910111213141516171819202122232425262728 |
- package third
- import (
- _ "embed"
- "github.com/oschwald/geoip2-golang"
- "net"
- )
- //go:embed GeoLite2-Country.mmdb
- var geoDb []byte
- func GetCountryByIP(ip string) (string, error) {
- // 打开GeoIP数据库
- db, err := geoip2.FromBytes(geoDb)
- if err != nil {
- return "default", err
- }
- defer db.Close()
- // 查询IP地址
- country, err := db.Country(net.ParseIP(ip))
- if err != nil {
- return "default", err
- }
- // 返回国家名称
- return country.Country.IsoCode, nil
- }
|