// GetCountry takes an IPv4 address string and returns the country code for that IP. func (gi *GeoIP) GetCountry(ip string) string { if gi.db == nil { return "" } cip := C.CString(ip) ccountry := C.GeoIP_country_code_by_addr(gi.db, cip) C.free(unsafe.Pointer(cip)) if ccountry != nil { rets := C.GoString(ccountry) return rets } return "" }
// Takes an IPv4 address string and returns the country code for that IP // and the netmask for that IP range. func (gi *GeoIP) GetCountry(ip string) (cc string, netmask int) { if gi.db == nil { return } gi.mu.Lock() defer gi.mu.Unlock() cip := C.CString(ip) defer C.free(unsafe.Pointer(cip)) ccountry := C.GeoIP_country_code_by_addr(gi.db, cip) if ccountry != nil { cc = C.GoString(ccountry) netmask = int(C.GeoIP_last_netmask(gi.db)) return } return }