[][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 (ip2asn-v4.tsv format) provided by IPtoASN as iterator of Records