[−][src]Crate asn_db
Look up IP address for matching ASN record that contains:
- network base IP address and mask (e.g.
ipnet::Ipv4Net
value like 1.1.1.0/24), - assigned AS number (e.g. 13335),
- owner country code (e.g. "US"),
- owner information (e.g. "CLOUDFLARENET - Cloudflare, Inc.").
Example
Load database from ip2asn-v4.tsv
file and look up 1.1.1.1
IP address.
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());
This prints:
Record {
ip: 16843008,
prefix_len: 24,
as_number: 13335,
country: "US",
owner: "CLOUDFLARENET - Cloudflare, Inc."
}
1.1.1.0/24
Usage
Use Db::from_tsv(reader)
to load database from ip2asn-v4.tsv
formatted file.
You can then use db.store(writer)
to store prepared, binary encoded data for fast loading with Db::load(reader)
.
Look up records with db.lookup(ip)
.
Structs
Db | Loaded ASN database that is optimized for looking up ASN by IP address |
Ipv4Addr | An IPv4 address. |
Ipv4Net | An IPv4 network address. |
Record | Autonomous system number record |
Enums
DbError | |
TsvParseError |
Functions
read_asn_tsv | Reads ASN database TSV file ( |