Crate ipgeolocate[−][src]
ipgeolocate
Get IP address geolocation information freely.
ipgeolocate = "0.3.4"
Add to Cargo.toml
.
Example
Using locator is really quite easy:
use ipgeolocate::{Locator, Service}; // Prints the city where 1.1.1.1 is. fn main() { match Locator::get("1.1.1.1", Service::IpApi) { Ok(ip) => println!("ipapi: {} - {} ({})", ip.ip, ip.city, ip.country), Err(error) => println!("Error getting data: {}", error), }; }
This and more examples are found in the examples directory.
Query Limits
Each service included in this library has a weekly, hourly, or monthly limit.
Some have more free queries, but are less reliable.
Here are the query limits:
| Service | Limit | | --------- | ------------------------- | | ipwhois.app | 10,000/month | | freegeoip.app | 15,000/hour | | ip-api.com | 45/minute | | ipapi.co | 1,000/day (30,000/month) |
freegeoip.app is not recommended because it has issues reliably getting the correct latitude and longitude for IP addresses.
Fields
The API can get these fields about IP addresses.
- ip
- latitude
- longitude
- city
- region
- country
- timezone
Credits
Grant Handy grantshandy@gmail.com APIs included:
- https://freegeoip.app/
- https://ipwhois.app/
- https://ip-api.com/
- https://ipapi.co/
Structs
Locator | This is the main struct for making requests to the APIs. |
Enums
GeoError | A general ipgeolocate error for requests. |
Service | Services (apis) that can be used for accessing geolocation data. |