ip2proxy

Crates.ioip2proxy
lib.rsip2proxy
version2.0.1
sourcesrc
created_at2020-04-28 10:58:48.245148
updated_at2022-12-05 17:02:30.687683
descriptionProbe IP2Proxy BIN data files
homepage
repositoryhttps://github.com/niklasf/ip2proxy-rust
max_upload_size
id234959
size1,093,633
GObject Introspection (github:alsa-project:gobject-introspection)

documentation

README

IP2Proxy Rust Library

Test crates.io docs.rs

Library to query IP2Proxy BIN Data files. They contain known proxies, geolocation information, and other meta data for IP address ranges.

https://www.ip2location.com/ is a commercial provider, offering various database files for download.

Supports IPv4 and IPv6.

Usage example

use ip2proxy::{Columns, Database, Row};

let db = Database::open("data/IP2PROXY-IP-PROXYTYPE-COUNTRY-REGION-CITY-ISP-DOMAIN-USAGETYPE-ASN-LASTSEEN-THREAT-RESIDENTIAL-PROVIDER.BIN")?;

assert_eq!(db.package_version(), 11);
assert_eq!(db.database_version(), "21.5.28");

if let Some(row) = db.query("1.0.0.1".parse()?, Columns::all())? {
    assert_eq!(row.proxy_type, Some(String::from("DCH")));
    assert_eq!(row.country_short, Some(String::from("US")));
    assert_eq!(row.country_long, Some(String::from("United States of America")));
    assert_eq!(row.region, Some(String::from("California")));
    assert_eq!(row.city, Some(String::from("Los Angeles")));
    assert_eq!(row.isp, Some(String::from("APNIC and CloudFlare DNS Resolver Project")));
    assert_eq!(row.domain, Some(String::from("cloudflare.com")));
    assert_eq!(row.usage_type, Some(String::from("CDN")));
    assert_eq!(row.asn, Some(String::from("13335")));
    assert_eq!(row.as_name, Some(String::from("CloudFlare Inc")));
    assert_eq!(row.last_seen, Some(String::from("27")));
    assert_eq!(row.threat, Some(String::from("-")));
    assert_eq!(row.provider, Some(String::from("-")));
}

Documentation

Read the documentation

License

This is an independently developed open-source library, licensed under the MIT or Apache 2.0 license at your option. The author is not associated with IP2Location.com.

Commit count: 96

cargo fmt