Did you know ... | Search Documentation: |
Pack geoip -- prolog/geoip.pl |
This library provides a minimal interface to the public GeoIP library from MAXMIND
It has been tested with the Ubuntu package libgeoip-dev
with the
databases from the package geoip-database-contrib
, which are by
default installed in =/usr/share/GeoIP=. A simple usage is:
?- tcp_host_to_address('www.swi-prolog.org', IP), geoip_lookup(IP, R). R = geoip{city:'Amsterdam', continent_code:'EU', country_code:'NL', country_code3:'NLD', country_name:'Netherlands', latitude:52.349998474121094, longitude:4.9166998863220215, netmask:16, region:'07'}.
geoip(Name.dat)
. Subsequent calls to this predicate return the
handle to the already opened database.geoip
, pointing to ='/usr/share/GeoIP=.
Mode is one of standard
, memory_cache
, check_cache
,
index_cache
or mmap_cache
. Consult the library documentation
for the meaning of these constants. For example:
?- geoip_open(geoip('GeoIPCity.dat'), standard, H). H = <geoip>(0x1f3ae30).
Database handles are subject to (atom) garbage collection. If a database handle is garbage collected, the underlying database is closed.
geoip_open('GeoIPCity', Handle)
to get a
handle to the GeoIP city database. Result is a dict, containing
a subset of the following keys: country_code
, country_code3
,
country_name
, region
, city
, postal_code
,
continent_code
, latitude
, longitude
, netmask
or
area_code
. This predicate uses GeoIP_record_by_ipnum() from
the GeoIP library.
The following predicates are exported, but not or incorrectly documented.