#ip-address #ip-geolocation #package #ip2location #database #ip2location™ #net

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

#1 in #ip2location

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–7MB
~117K SLoC