package geoip import ( "github.com/oschwald/geoip2-golang" ) type Client struct { accountId int64 // 账号id licenseKey string // 许可证密钥 asnDb *geoip2.Reader cityDb *geoip2.Reader countryDb *geoip2.Reader } func New(licenseKey string) (*Client, error) { var err error c := &Client{} c.licenseKey = licenseKey c.asnDb, err = geoip2.FromBytes(asnBuff) if err != nil { return nil, err } c.cityDb, err = geoip2.FromBytes(cityBuff) if err != nil { return nil, err } c.countryDb, err = geoip2.FromBytes(countryBuff) if err != nil { return nil, err } return c, err } func (c *Client) Close() { c.asnDb.Close() c.cityDb.Close() c.countryDb.Close() }