func (gi *GeoIP) GetNameV6(ip string) (name 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))
	cname := C.GeoIP_name_by_addr_v6(gi.db, cip)

	if cname != nil {
		name = C.GoString(cname)
		defer C.free(unsafe.Pointer(cname))
		netmask = int(C.GeoIP_last_netmask(gi.db))
		return
	}
	return
}
func (gi *GeoIP) GetNameV6(ip string) (name 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))
	cname := C.GeoIP_name_by_addr_v6(gi.db, cip)

	if cname != nil {
		name = C.GoString(cname)
		defer C.free(unsafe.Pointer(cname))
		netmask = int(C.GeoIP_last_netmask(gi.db))
		return
	}
	return
}
func ( gi * GeoIP ) GetNameV6 ( ip string ) ( name 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 ) ) cname := C . GeoIP_name_by_addr_v6 ( gi . db , cip ) if cname != nil { name = C . GoString ( cname ) defer C . free ( unsafe . Pointer ( cname ) ) netmask = int ( C . GeoIP_last_netmask ( gi . db ) ) return } return }
// Same as GetName() but for IPv6 addresses.
Same as GetName () but for IPv6 addresses .