created_at2023-02-20 17:49:32.699604
updated_at2023-02-20 17:49:32.699604
descriptionA CLI for geolocation data providers
Nagy Botond (westernwontons)




Geolocate is a CLI app to fetch geolocation data from various providers. Currently, we support (ip2location)[] and (ipgeolocation)[]. If you'd like others to be supported, you're welcome to create an issue.


Geolocate compiles on stable. There are multiple ways to install it:


You should start with getting some API tokens for at least one of the supported providers. Both (ip2location)[] and (ipgeolocation)[] have a free tier. You can save them with geolocate config --edit. This command will open the configuration file with you favourite editor where you will have to add the tokens. IMPORTANT: The key of the token has to be name of the provider. For example:

ip2location = "yourtokengoeshere"
ipgeolocation = "yourothertokengoeshere"

If you don't do this, geolocate will not recognise them and won't be very useful. Be sure you write correct toml data, but

A subcommand exists for each provider. For example, to fetch geo data for an IP address of from the ipgeolocation provider, you would run the following:

geolocate ipgeolocation --addrs

Multiple IP addresses may be passed delimited with spaces:

geolocate ipgeolocation --addrs

In each case you get a JSON array response.

Geolocate can also read a file that contains IP addresses. There are some rules:

  • each IP address has to be delimited by a new line
  • they must be correct IP addresses

In the latter case, if the IP address format is wrong, you will get an error with the number of the line where the incorrect IP address is. The first incorrect IP address will make geolocate exit.

The IP addresses may be IPv4 or IPv6. Geolocate will accept either so long they're correct, but makes no guarantees that the provider accepts them.

Commit count: 60

cargo fmt