tor/scripts/maint/geoip
Nick Mathewson 0d4237839b Rust tool to convert IPFire Location dump into CSV format.
The IPFire people provide a tool that collects data from several
top-level sources, combines it into a single database, and annotates
it with optional overrides.  This tool transforms the "dump" format
of their database into the form Tor expects.
2021-02-22 12:25:18 -05:00
..
geoip-db-tool Rust tool to convert IPFire Location dump into CSV format. 2021-02-22 12:25:18 -05:00
README.geoip Rust tool to convert IPFire Location dump into CSV format. 2021-02-22 12:25:18 -05:00
update_geoip.sh Rust tool to convert IPFire Location dump into CSV format. 2021-02-22 12:25:18 -05:00

To generate new geoip files, you'll need to install the
libloc/"location" tool provided by https://location.ipfire.org/.
I personally build it with:

  ./configure CFLAGS='-g -O2' --disable-perl --without-systemd --prefix=/opt/libloc
  make
  make install

Then (after adjusting PATH and PYTHONPATH) you can get the latest
dump with:

  location update
  location dump geoip-dump.txt

And transform it into geoip files with

  cargo run --release -- -i geoip-dump.txt


==============================

Note that the current version "0.1.9" of rangemap has a performance
bug, making this tool quite slow.  Previous versions had a
correctness bug that made the output needlessly long.  With luck,
there will soon be a fast correct rangemap version.