3 stable releases
2.0.1 | Dec 5, 2022 |
---|---|
2.0.0 | Oct 15, 2021 |
1.0.0 | Apr 28, 2020 |
#13 in #ip-geolocation
23 downloads per month
28KB
445 lines
IP2Proxy Rust Library
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
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.
Dependencies
~0.7–1MB
~11K SLoC