#geolocation #ip-geolocation #ip-address

ip2location-ip2location

IP2Location™ IP Address Geolocation Database

8 releases (4 breaking)

0.4.0 Jan 30, 2023
0.3.0 May 1, 2022
0.2.0 Apr 16, 2022
0.1.3 Apr 15, 2022
0.0.0 Apr 6, 2022

#18 in #ip-geolocation

24 downloads per month

Apache-2.0 OR MIT

110KB
2.5K SLoC

ip2location-ip2location

Example

#[cfg(feature = "tokio_fs")]
{
use std::{net::Ipv4Addr};

use ip2location_ip2location::bin_format::{Database, TokioFile};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let runtime = tokio::runtime::Runtime::new().unwrap();

    runtime.block_on(async move {
        let db = Database::<TokioFile>::new("/path/IP2LOCATION-LITE-DB11.BIN", 2).await?;

        if let Some(record) = db.lookup_ipv4(Ipv4Addr::new(8, 8, 8, 8), None).await? {
            assert_eq!(record.country_code.to_string(), "US");
        }

        Ok(())
    })
}
}

Dependencies

~5–11MB
~115K SLoC