goasn

command module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2019 License: MIT Imports: 1 Imported by: 0

README

goasn

Build Status Go Report Card GoDoc

goasn provides fast lookup of IP addresses to IXP and AS numbers from RIB archives.
It supports the following sources:

It reads and store IP addresses in a radix tree (kentik/patricia) for fast lookups.

It supports multiple origin ASes in opposition to pyasn (pyasn#46).

WIP. The API is not stable

Quick Start

CLI

You can download the latest binary or build goasn by yourself.
Building meshmon requires Go 1.12+.

git clone https://github.com/maxmouchet/goasn.git
cd goasn; make
goasn download --collector route-views.amsix.routeviews.org --date 2019-08-01T08:00
goasn convert rib.20190801.0800.bz2
goasn lookup --db rib.20180801.0800.txt 8.8.8.8
Library
go get github.com/maxmouchet/goasn
asndb, _ := goasn.NewDB("rib.20180801.0800.txt")

asn, _ := asndb.LookupStr("8.8.8.8")
// => 15169

ip := net.ParseIP("1.1.1.1")
asn, _ := asndb.LookupIP(ip)
// => 13335

Performance

Constructing the radix tree is slower than pyasn, but lookups are faster.

# benchmark.go
Loading database from ipasn_20190822.dat...
Took 1.719656297s

Looking up 10000 addresses (string)
Took 3.367572ms

Looking up 10000 addresses (net.IP)
Took 1.631176ms
# benchmark.py
Loading database from ipasn_20190822.dat
Took 197.402488ms

Looking up 10000 addresses (string)
Took 9.340981ms

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL