3个稳定版本

2.0.1 2022年12月5日
2.0.0 2021年10月15日
1.0.0 2020年4月28日

#1250 in Web编程

MIT/Apache

28KB
445

IP2Proxy Rust库

Test crates.io docs.rs

用于查询IP2Proxy BIN数据文件的库。它们包含已知代理、地理位置信息和IP地址范围的其它元数据。

https://www.ip2location.com/ 是一个商业提供商,提供各种数据库文件的下载。

支持IPv4和IPv6。

使用示例

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("-")));
}

文档

阅读文档

许可

这是一个独立开发的开源库,可选择使用MIT或Apache 2.0许可。作者与IP2Location.com无关。

依赖

~0.7–1MB
~11K SLoC