2 个版本
0.2.2 | 2023年8月5日 |
---|---|
0.2.0 | 2023年8月3日 |
#1158 在 数据库接口
18KB
388 行
asn-db2
是一个 Rust 库,可以从 ASN 数据库(如 ip2asn-v4.tsv
、ip2asn-v6.tsv
、ip2asn-combined.tsv
文件)加载和索引 IPtoASN 网站上的数据。
此 crate 是 Jakub Pastuszek 的 asn-db crate 的重写分支。
一旦加载,就可以用它来查找包含以下内容的 IP 地址对应的 ASN 记录:
- 网络基本 IP 地址和掩码(例如,ipnet::Ipv4Net 值如
1.1.1.1
), - 分配的 AS 号码(例如,
13335
), - 所有者国家代码(例如,
US
), - 所有者信息(例如,
CLOUDFLARENET - Cloudflare, Inc.
)。
支持 IPv4 和 IPv6 地址和网络。
示例
从 ip2asn-v4.tsv
文件中加载数据库,并查找 1.1.1.1
IP 地址。
use asn_db2::Ipv4Database;
use std::fs::File;
use std::io::BufReader;
let db = Ipv4Database::from_reader(BufReader::new(File::open("ip2asn-v4.tsv").unwrap())).unwrap();
let entry = db.lookup("1.1.1.1".parse().unwrap()).unwrap();
println!("{:#?}", entry);
这将打印
Entry {
subnet: 1.1.1.0/24,
as_number: 13335,
country: "US",
owner: "CLOUDFLARENET",
}
依赖项
~2–2.9MB
~44K SLoC