1 个稳定版本
1.0.0 | 2023年4月24日 |
---|
672 在 数据库接口
706 每月下载量
51KB
811 行
IPQualityScore IP 地址声誉 & 代理检测 Rust 数据库读取器
平文件版本 1.0
我们的平文件代理检测数据库允许您通过简单的库查找任何 IP 地址的重要详细信息。只需安装读取器,下载数据库,即可立即检查 IP 地址与大量数据。
点击此处查看完整的 Rust IPQualityScore 平文件数据库文档 或 点击此处了解更多关于我们的代理检测数据库的功能。 库 Crates 列表和 Cargo 生成的文档可在此处找到。安装
要安装,只需在项目目录中运行以下 Cargo 命令
cargo add ipqs_db_reader
用法
使用我们的平文件数据库系统查找 IP 地址很简单
let ip: IpAddr = IpAddr::V4(Ipv4Addr::from_str("8.8.0.0").unwrap());
let mut path_buf = PathBuf::from(env!("CARGO_MANIFEST_DIR")); path_buf.push("resources/IPQualityScore-IP-Reputation-Database-IPv4.ipqs");
let mut reader = FileReader::open(&path_buf)?; let record = reader.fetch(&ip)?;
if let Some(is_proxy) = record.is_proxy() { if is_proxy { println!("{} is a proxy!", ip); } }
println!("Connection type: {}", record.connection_type()); if let Some(fraud_score) = record.fraud_score(Strictness::Zero) { println!("Fraud Score (Strictness 0): {:#?}", fraud_score); }
// Record implements fmt::Display println!("{}", record);
// Record implements serde::Serialization #[cfg(feature = "json")] { let serialized = serde_json::to_string_pretty(&record)?; println!("{}", serialized); }
// Record implements Clone let _ = record;
用法说明
- 每个数据库仅保存 IPv4 或 IPv6 数据。因此,根据您的用例,您可能需要两个读取器实例。
- 确保在编译时包含发布选项
cargo build --release
,因为这将大大加快搜索速度。 - 默认情况下启用了将 Record 结构序列化为 JSON 的功能。此功能需要
serde
和serde_json
作为依赖项。如果您不需要序列化结果并且希望不带外部依赖项(除了 Rust 标准库)构建,请禁用默认功能。[dependencies] ipqs_db_reader = { version = "1.0.0", default-features = false, }
Record 结构方法
根据您收到的数据库文件,某些字段可能不可用。如果在您的数据库中不可用,相关方法将返回 Option::None。
实现 | 描述 |
---|---|
pub fn is_proxy(&self) -> Option<bool> |
这个IP地址是否疑似代理?(SOCKS、Elite、匿名、VPN、Tor等) |
pub fn is_vpn(&self) -> Option<bool> |
这个IP是否疑似VPN连接?这可能包括任何时间都可能变为活跃VPN的数据中心范围。"proxy"状态始终为真,当此值为真时。 |
pub fn is_tor(&self) -> Option<bool> |
这个IP是否疑似Tor连接?这可能包括之前活跃的Tor节点和出口,它们可能随时变为活跃的Tor出口。"proxy"状态始终为真,当此值为真时。 |
pub fn is_crawler(&self) -> Option<bool> |
这个IP是否与主流搜索引擎(如Googlebot、Bingbot、Yandex等)的已确认爬虫相关,基于主机名或IP地址验证。 |
pub fn is_bot(&self) -> Option<bool> |
指示是否近期有机器人或非人类流量使用此IP地址进行自动化欺诈行为。这提供了更强的信心,认为IP地址可疑。 |
pub fn recent_abuse(&self) -> Option<bool> |
此值将指示是否在我们的网络中对此IP地址有任何最近验证的滥用行为。滥用可能是已确认的欺诈、受损害的设备、假应用安装或类似恶意行为。 |
pub fn is_blacklisted(&self) -> Option<bool> |
此值将指示IP是否被任何第三方机构因垃圾邮件、滥用或欺诈列入黑名单。 |
pub fn is_private(&self) -> Option<bool> |
此值将指示IP是否是私有、不可路由的IP地址。 |
pub fn is_mobile(&self) -> Option<bool> |
此值将指示IP是否可能由移动运营商拥有。 |
pub fn has_open_ports(&self) -> Option<bool> |
此值将指示IP是否最近有开放的(监听)端口。 |
pub fn is_hosting_provider(&self) -> Option<bool> |
此值将指示IP是否可能由托管提供商拥有,或者租借给托管公司。 |
pub fn active_vpn(&self) -> Option<bool> |
识别流行VPN服务和私有VPN服务器使用的活动VPN连接。 |
pub fn active_tor(&self) -> Option<bool> |
识别Tor网络上的活动Tor出口。 |
pub fn public_access_point(&self) -> Option<bool> |
指示此IP是否可能是公共接入点,如咖啡馆、大学或图书馆。 |
pub fn connection_type(&self) -> &str |
此IP地址的疑似连接类型。返回以下之一:"Residential","Mobile","Corporate","Data Center","Education"或"Unknown"。 |
pub fn abuse_velocity(&self) -> &str |
IP地址在IPQS威胁网络中参与滥用的频率。值可以是"high","medium","low"或"none"。 |
pub fn country(&self) -> Option<&str> |
IP地址的国家代码,两位字符,如果未知则为"N/A"。 |
pub fn city(&self) -> Option<&str> |
如果可用,则为IP地址的城市,如果未知则为"N/A"。 |
pub fn isp(&self) -> Option<&str> |
如果已知,则为ISP。否则为"N/A"。 |
pub fn region(&self) -> Option<&str> |
如果已知,则为区域(或州),否则为"N/A"。 |
pub fn organization(&self) -> Option<&str> |
如果已知,则为组织。可以是列出的ISP的母公司或子公司。否则为"N/A"。 |
pub fn asn(&self) -> Option<u64> |
如果已知,则为自治系统编号。如果不存在,则为零。 |
pub fn timezone(&self) -> Option<&str> |
如果可用,则为IP地址的时区,如果未知则为"N/A"。 |
pub fn latitude(&self) -> Option<f32> |
如果可用,则为IP地址的纬度,如果未知则为0.00。 |
pub fn longitude(&self) -> Option<f32> |
如果可用,则为IP地址的经度,如果未知则为0.00。 |
pub fn fraud_score(&self, strictness:严格度) -> Option<u32> |
根据给定的严格度返回与IP地址关联的欺诈分数。严格度可以是:严格度::{Zero, One, Two, Three}。某些数据库可能只包含1个条目,而其他所有4个都包含。我们建议从严格度::Zero(最低严格度设置)开始,根据您的欺诈水平增加到严格度::One。严格度大于严格度::One具有很高的误报风险。如果给定严格度的欺诈分数不存在,则此方法将返回Option::None。 |
依赖关系
~0–270KB