5个版本
0.1.4 | 2020年5月1日 |
---|---|
0.1.3 | 2020年4月30日 |
0.1.2 | 2019年8月27日 |
0.1.1 | 2019年4月25日 |
0.1.0 | 2019年2月20日 |
#950 in 数据库接口
341 每月下载量
用于 asn-tools
17KB
291 行
asn-db
是一个Rust库,可以从 ASN 数据库 (ip2asn-v4.tsv
文件) 中加载和索引来自 IPtoASN 网站的数据库。
一旦加载,就可以用来查找包含以下内容的IP地址的 ASN 记录:
- 网络基础IP地址和掩码(例如 ipnet::Ipv4Net 值,如
1.1.1.0/24
), - 分配的AS号码(例如
13335
), - 所有者国家代码(例如
US
), - 所有者信息(例如
CLOUDFLARENET - Cloudflare, Inc.
)。
还可以将数据库的优化二进制表示写入文件,以便快速加载。注意,目前只支持IPv4记录。
示例
从 ip2asn-v4.tsv
文件加载数据库并查找IP地址 1.1.1.1
。
use asn_db::Db;
use std::fs::File;
use std::io::BufReader;
let db = Db::form_tsv(BufReader::new(File::open("ip2asn-v4.tsv").unwrap())).unwrap();
let record = db.lookup("1.1.1.1".parse().unwrap()).unwrap();
println!("{:#?}", record);
println!("{:#?}", record.network());
这将打印
Record {
ip: 16843008,
prefix_len: 24,
as_number: 13335,
country: "US",
owner: "CLOUDFLARENET - Cloudflare, Inc."
}
1.1.1.0/24
依赖项
~2–2.7MB
~44K SLoC