Documentation ¶
Overview ¶
This ip2location package provides a fast lookup of country, region, city, latitude, longitude, ZIP code, time zone, ISP, domain name, connection type, IDD code, area code, weather station code, station name, MCC, MNC, mobile brand, elevation, usage type, address type and IAB category from IP address by using IP2Location database.
*
- Copyright 2017 ~ 2025 the original author or authors. *
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at *
- http://www.apache.org/licenses/LICENSE-2.0 *
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
*
- Copyright 2017 ~ 2025 the original author or authors. *
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at *
- http://www.apache.org/licenses/LICENSE-2.0 *
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
Index ¶
- Constants
- Variables
- func Api_version() string
- func Close()deprecated
- func Debugf(format string, v ...interface{})
- func Error(v ...interface{})
- func Errorf(format string, v ...interface{})
- func ExpressionMatch(a string, b string) bool
- func Infof(format string, v ...interface{})
- func InterfaceToArray(i interface{}) []string
- func Open(dbpath string)deprecated
- func Printrecord(x IP2Locationrecord)
- func Qname2Zone(qname string) string
- func Warningf(format string, v ...interface{})
- type AAAA_Record
- type A_Record
- type CAA_Record
- type CNAME_Record
- type DB
- func (d *DB) Close()
- func (d *DB) Get_addresstype(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_all(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_areacode(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_category(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_city(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_country_long(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_country_short(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_domain(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_elevation(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_iddcode(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_isp(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_latitude(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_longitude(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_mcc(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_mnc(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_mobilebrand(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_netspeed(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_region(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_timezone(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_usagetype(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_weatherstationcode(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_weatherstationname(ipaddress string) (IP2Locationrecord, error)
- func (d *DB) Get_zipcode(ipaddress string) (IP2Locationrecord, error)
- type DBReader
- type IP2LocationCreditResult
- type IP2LocationResult
- type IP2Locationrecord
- func Get_all(ipaddress string) IP2Locationrecorddeprecated
- func Get_areacode(ipaddress string) IP2Locationrecorddeprecated
- func Get_city(ipaddress string) IP2Locationrecorddeprecated
- func Get_country_long(ipaddress string) IP2Locationrecorddeprecated
- func Get_country_short(ipaddress string) IP2Locationrecorddeprecated
- func Get_domain(ipaddress string) IP2Locationrecorddeprecated
- func Get_elevation(ipaddress string) IP2Locationrecorddeprecated
- func Get_iddcode(ipaddress string) IP2Locationrecorddeprecated
- func Get_isp(ipaddress string) IP2Locationrecorddeprecated
- func Get_latitude(ipaddress string) IP2Locationrecorddeprecated
- func Get_longitude(ipaddress string) IP2Locationrecorddeprecated
- func Get_mcc(ipaddress string) IP2Locationrecorddeprecated
- func Get_mnc(ipaddress string) IP2Locationrecorddeprecated
- func Get_mobilebrand(ipaddress string) IP2Locationrecorddeprecated
- func Get_netspeed(ipaddress string) IP2Locationrecorddeprecated
- func Get_region(ipaddress string) IP2Locationrecorddeprecated
- func Get_timezone(ipaddress string) IP2Locationrecorddeprecated
- func Get_usagetype(ipaddress string) IP2Locationrecorddeprecated
- func Get_weatherstationcode(ipaddress string) IP2Locationrecorddeprecated
- func Get_weatherstationname(ipaddress string) IP2Locationrecorddeprecated
- func Get_zipcode(ipaddress string) IP2Locationrecorddeprecated
- type IpLocation
- type MX_Record
- type NS_Record
- type Record
- type RedisService
- func (redisService *RedisService) A(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) AAAA(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) AXFR(z *Zone) (records []dns.RR)
- func (redisService *RedisService) CAA(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) CNAME(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) Connect()
- func (redisService *RedisService) GetBlacklist() []string
- func (redisService *RedisService) GetWhitelist() []string
- func (redisService *RedisService) MX(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) NS(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) Name() string
- func (redisService *RedisService) SOA(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) SRV(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- func (redisService *RedisService) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)
- func (redisService *RedisService) TXT(name string, z *Zone, record *Record) (answers, extras []dns.RR)
- type SOA_Record
- type SRV_Record
- type TXT_Record
- type WS
- type Zone
Constants ¶
const (
PluginName = "coredns_gdns"
)
Variables ¶
var SpecialDomains = [...]string{"com.cn.", "net.cn.", ".ac.cn.", ".org.cn.", ".gov.cn.", ".mil.cn.", ".edu.cn."}
Some special top-level domain names are defined here, because they have two levels of top-level names, which need special treatment when dealing with DNS query.
Functions ¶
func Close
deprecated
func Close()
Close will close the file handle to the BIN file.
Deprecated: No longer being updated.
func InterfaceToArray ¶
func InterfaceToArray(i interface{}) []string
func Printrecord ¶
func Printrecord(x IP2Locationrecord)
Printrecord is used to output the geolocation data for debugging purposes.
Types ¶
type AAAA_Record ¶
type CAA_Record ¶
type CNAME_Record ¶
type DB ¶
type DB struct {
// contains filtered or unexported fields
}
func OpenDB ¶
Open takes the path to the IP2Location BIN database file. It will read all the metadata required to be able to extract the embedded geolocation data, and return the underlining DB object.
func OpenDBWithReader ¶
OpenDBWithReader takes a DBReader to the IP2Location BIN database file. It will read all the metadata required to be able to extract the embedded geolocation data, and return the underlining DB object.
func (*DB) Get_addresstype ¶
func (d *DB) Get_addresstype(ipaddress string) (IP2Locationrecord, error)
Get_addresstype will return the address type based on the queried IP address.
func (*DB) Get_all ¶
func (d *DB) Get_all(ipaddress string) (IP2Locationrecord, error)
Get_all will return all geolocation fields based on the queried IP address.
func (*DB) Get_areacode ¶
func (d *DB) Get_areacode(ipaddress string) (IP2Locationrecord, error)
Get_areacode will return the area code based on the queried IP address.
func (*DB) Get_category ¶
func (d *DB) Get_category(ipaddress string) (IP2Locationrecord, error)
Get_category will return the category based on the queried IP address.
func (*DB) Get_city ¶
func (d *DB) Get_city(ipaddress string) (IP2Locationrecord, error)
Get_city will return the city name based on the queried IP address.
func (*DB) Get_country_long ¶
func (d *DB) Get_country_long(ipaddress string) (IP2Locationrecord, error)
Get_country_long will return the country name based on the queried IP address.
func (*DB) Get_country_short ¶
func (d *DB) Get_country_short(ipaddress string) (IP2Locationrecord, error)
Get_country_short will return the ISO-3166 country code based on the queried IP address.
func (*DB) Get_domain ¶
func (d *DB) Get_domain(ipaddress string) (IP2Locationrecord, error)
Get_domain will return the domain name based on the queried IP address.
func (*DB) Get_elevation ¶
func (d *DB) Get_elevation(ipaddress string) (IP2Locationrecord, error)
Get_elevation will return the elevation in meters based on the queried IP address.
func (*DB) Get_iddcode ¶
func (d *DB) Get_iddcode(ipaddress string) (IP2Locationrecord, error)
Get_iddcode will return the International Direct Dialing code based on the queried IP address.
func (*DB) Get_isp ¶
func (d *DB) Get_isp(ipaddress string) (IP2Locationrecord, error)
Get_isp will return the Internet Service Provider name based on the queried IP address.
func (*DB) Get_latitude ¶
func (d *DB) Get_latitude(ipaddress string) (IP2Locationrecord, error)
Get_latitude will return the latitude based on the queried IP address.
func (*DB) Get_longitude ¶
func (d *DB) Get_longitude(ipaddress string) (IP2Locationrecord, error)
Get_longitude will return the longitude based on the queried IP address.
func (*DB) Get_mcc ¶
func (d *DB) Get_mcc(ipaddress string) (IP2Locationrecord, error)
Get_mcc will return the mobile country code based on the queried IP address.
func (*DB) Get_mnc ¶
func (d *DB) Get_mnc(ipaddress string) (IP2Locationrecord, error)
Get_mnc will return the mobile network code based on the queried IP address.
func (*DB) Get_mobilebrand ¶
func (d *DB) Get_mobilebrand(ipaddress string) (IP2Locationrecord, error)
Get_mobilebrand will return the mobile carrier brand based on the queried IP address.
func (*DB) Get_netspeed ¶
func (d *DB) Get_netspeed(ipaddress string) (IP2Locationrecord, error)
Get_netspeed will return the Internet connection speed based on the queried IP address.
func (*DB) Get_region ¶
func (d *DB) Get_region(ipaddress string) (IP2Locationrecord, error)
Get_region will return the region name based on the queried IP address.
func (*DB) Get_timezone ¶
func (d *DB) Get_timezone(ipaddress string) (IP2Locationrecord, error)
Get_timezone will return the time zone based on the queried IP address.
func (*DB) Get_usagetype ¶
func (d *DB) Get_usagetype(ipaddress string) (IP2Locationrecord, error)
Get_usagetype will return the usage type based on the queried IP address.
func (*DB) Get_weatherstationcode ¶
func (d *DB) Get_weatherstationcode(ipaddress string) (IP2Locationrecord, error)
Get_weatherstationcode will return the weather station code based on the queried IP address.
func (*DB) Get_weatherstationname ¶
func (d *DB) Get_weatherstationname(ipaddress string) (IP2Locationrecord, error)
Get_weatherstationname will return the weather station name based on the queried IP address.
func (*DB) Get_zipcode ¶
func (d *DB) Get_zipcode(ipaddress string) (IP2Locationrecord, error)
Get_zipcode will return the postal code based on the queried IP address.
type IP2LocationCreditResult ¶
type IP2LocationCreditResult struct {
Response int `json:"response"`
}
The IP2LocationCreditResult struct stores the credit balance for the IP2Location Web Service.
type IP2LocationResult ¶
type IP2LocationResult struct { Response string `json:"response"` CountryCode string `json:"country_code"` CountryName string `json:"country_name"` RegionName string `json:"region_name"` CityName string `json:"city_name"` Latitude float64 `json:"latitude"` Longitude float64 `json:"longitude"` ZipCode string `json:"zip_code"` TimeZone string `json:"time_zone"` Isp string `json:"isp"` Domain string `json:"domain"` NetSpeed string `json:"net_speed"` IddCode string `json:"idd_code"` AreaCode string `json:"area_code"` WeatherStationCode string `json:"weather_station_code"` WeatherStationName string `json:"weather_station_name"` Mcc string `json:"mcc"` Mnc string `json:"mnc"` MobileBrand string `json:"mobile_brand"` Elevation int `json:"elevation"` UsageType string `json:"usage_type"` AddressType string `json:"address_type"` Category string `json:"category"` CategoryName string `json:"category_name"` Geotargeting struct { Metro string `json:"metro"` } `json:"geotargeting"` Continent struct { Name string `json:"name"` Code string `json:"code"` Hemisphere []string `json:"hemisphere"` } `json:"continent"` Country struct { Name string `json:"name"` Alpha3Code string `json:"alpha3_code"` NumericCode string `json:"numeric_code"` Demonym string `json:"demonym"` Flag string `json:"flag"` Capital string `json:"capital"` TotalArea string `json:"total_area"` Population string `json:"population"` Currency struct { Code string `json:"code"` Name string `json:"name"` Symbol string `json:"symbol"` } `json:"currency"` Language struct { Code string `json:"code"` Name string `json:"name"` } `json:"language"` IddCode string `json:"idd_code"` Tld string `json:"tld"` IsEu bool `json:"is_eu"` } `json:"country"` CountryGroupings []struct { Acronym string `json:"acronym"` Name string `json:"name"` } `json:"country_groupings"` Region struct { Name string `json:"name"` Code string `json:"code"` } `json:"region"` City struct { Name string `json:"name"` } `json:"city"` TimeZoneInfo struct { Olson string `json:"olson"` CurrentTime string `json:"current_time"` GmtOffset int `json:"gmt_offset"` IsDst string `json:"is_dst"` Sunrise string `json:"sunrise"` Sunset string `json:"sunset"` } `json:"time_zone_info"` CreditsConsumed int `json:"credits_consumed"` }
The IP2LocationResult struct stores all of the available geolocation info found in the IP2Location Web Service.
type IP2Locationrecord ¶
type IP2Locationrecord struct { Country_short string Country_long string Region string City string Isp string Latitude float32 Longitude float32 Domain string Zipcode string Timezone string Netspeed string Iddcode string Areacode string Weatherstationcode string Weatherstationname string Mcc string Mnc string Mobilebrand string Elevation float32 Usagetype string Addresstype string Category string }
The IP2Locationrecord struct stores all of the available geolocation info found in the IP2Location database.
func Get_all
deprecated
func Get_all(ipaddress string) IP2Locationrecord
Get_all will return all geolocation fields based on the queried IP address.
Deprecated: No longer being updated.
func Get_areacode
deprecated
func Get_areacode(ipaddress string) IP2Locationrecord
Get_areacode will return the area code based on the queried IP address.
Deprecated: No longer being updated.
func Get_city
deprecated
func Get_city(ipaddress string) IP2Locationrecord
Get_city will return the city name based on the queried IP address.
Deprecated: No longer being updated.
func Get_country_long
deprecated
func Get_country_long(ipaddress string) IP2Locationrecord
Get_country_long will return the country name based on the queried IP address.
Deprecated: No longer being updated.
func Get_country_short
deprecated
func Get_country_short(ipaddress string) IP2Locationrecord
Get_country_short will return the ISO-3166 country code based on the queried IP address.
Deprecated: No longer being updated.
func Get_domain
deprecated
func Get_domain(ipaddress string) IP2Locationrecord
Get_domain will return the domain name based on the queried IP address.
Deprecated: No longer being updated.
func Get_elevation
deprecated
func Get_elevation(ipaddress string) IP2Locationrecord
Get_elevation will return the elevation in meters based on the queried IP address.
Deprecated: No longer being updated.
func Get_iddcode
deprecated
func Get_iddcode(ipaddress string) IP2Locationrecord
Get_iddcode will return the International Direct Dialing code based on the queried IP address.
Deprecated: No longer being updated.
func Get_isp
deprecated
func Get_isp(ipaddress string) IP2Locationrecord
Get_isp will return the Internet Service Provider name based on the queried IP address.
Deprecated: No longer being updated.
func Get_latitude
deprecated
func Get_latitude(ipaddress string) IP2Locationrecord
Get_latitude will return the latitude based on the queried IP address.
Deprecated: No longer being updated.
func Get_longitude
deprecated
func Get_longitude(ipaddress string) IP2Locationrecord
Get_longitude will return the longitude based on the queried IP address.
Deprecated: No longer being updated.
func Get_mcc
deprecated
func Get_mcc(ipaddress string) IP2Locationrecord
Get_mcc will return the mobile country code based on the queried IP address.
Deprecated: No longer being updated.
func Get_mnc
deprecated
func Get_mnc(ipaddress string) IP2Locationrecord
Get_mnc will return the mobile network code based on the queried IP address.
Deprecated: No longer being updated.
func Get_mobilebrand
deprecated
func Get_mobilebrand(ipaddress string) IP2Locationrecord
Get_mobilebrand will return the mobile carrier brand based on the queried IP address.
Deprecated: No longer being updated.
func Get_netspeed
deprecated
func Get_netspeed(ipaddress string) IP2Locationrecord
Get_netspeed will return the Internet connection speed based on the queried IP address.
Deprecated: No longer being updated.
func Get_region
deprecated
func Get_region(ipaddress string) IP2Locationrecord
Get_region will return the region name based on the queried IP address.
Deprecated: No longer being updated.
func Get_timezone
deprecated
func Get_timezone(ipaddress string) IP2Locationrecord
Get_timezone will return the time zone based on the queried IP address.
Deprecated: No longer being updated.
func Get_usagetype
deprecated
func Get_usagetype(ipaddress string) IP2Locationrecord
Get_usagetype will return the usage type based on the queried IP address.
Deprecated: No longer being updated.
func Get_weatherstationcode
deprecated
func Get_weatherstationcode(ipaddress string) IP2Locationrecord
Get_weatherstationcode will return the weather station code based on the queried IP address.
Deprecated: No longer being updated.
func Get_weatherstationname
deprecated
func Get_weatherstationname(ipaddress string) IP2Locationrecord
Get_weatherstationname will return the weather station name based on the queried IP address.
Deprecated: No longer being updated.
func Get_zipcode
deprecated
func Get_zipcode(ipaddress string) IP2Locationrecord
Get_zipcode will return the postal code based on the queried IP address.
Deprecated: No longer being updated.
type IpLocation ¶
type IpLocation struct {
// contains filtered or unexported fields
}
func NewIpLocation ¶
func NewIpLocation() *IpLocation
type Record ¶
type Record struct { A []A_Record `json:"a,omitempty"` AAAA []AAAA_Record `json:"aaaa,omitempty"` TXT []TXT_Record `json:"txt,omitempty"` CNAME []CNAME_Record `json:"cname,omitempty"` NS []NS_Record `json:"ns,omitempty"` MX []MX_Record `json:"mx,omitempty"` SRV []SRV_Record `json:"srv,omitempty"` CAA []CAA_Record `json:"caa,omitempty"` SOA SOA_Record `json:"soa,omitempty"` }
type RedisService ¶
type RedisService struct { Next plugin.Handler ClusterClient *redisCon.ClusterClient // contains filtered or unexported fields }
func (*RedisService) Connect ¶
func (redisService *RedisService) Connect()
func (*RedisService) GetBlacklist ¶
func (redisService *RedisService) GetBlacklist() []string
func (*RedisService) GetWhitelist ¶
func (redisService *RedisService) GetWhitelist() []string
func (*RedisService) Name ¶
func (redisService *RedisService) Name() string
Name implements the Handler interface.
type SOA_Record ¶
type SRV_Record ¶
type TXT_Record ¶
type WS ¶
type WS struct {
// contains filtered or unexported fields
}
The WS struct is the main object used to query the IP2Location Web Service.
func (*WS) GetCredit ¶
func (w *WS) GetCredit() (IP2LocationCreditResult, error)
GetCredit will return the web service credit balance.