#asn #ip-address #ip

asn-db2

在 https://iptoasn.com/ 的数据库中查找匹配的 ASN 信息对应的 IP 地址

2 个版本

0.2.2 2023年8月5日
0.2.0 2023年8月3日

#1158数据库接口

MIT 许可证

18KB
388

Latest Version Documentation License

asn-db2 是一个 Rust 库,可以从 ASN 数据库(如 ip2asn-v4.tsvip2asn-v6.tsvip2asn-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