| 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.