eui

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 20, 2018 License: MIT Imports: 8 Imported by: 0

README

EUI Lookup

In case you want to know who registered an EUI.

whois-eui 70B3D57ED000AB69

CLI Usage

  • Installation: go get go.htdvisser.nl/eui/cmd/whois-eui
  • Initialize the database: whois-eui -initialize
  • Do an EUI lookup: whois-eui 70B3D57ED000AB69

Documentation

Overview

Example
package main

import (
	"fmt"
	"os"
	"path/filepath"

	"github.com/boltdb/bolt"
	"go.htdvisser.nl/eui"
)

func main() {
	fmt.Println("Opening DB")
	db, err := bolt.Open(filepath.Join(os.Getenv("TMPDIR"), "eui-registrations.db"), 0600, nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer func() {
		fmt.Println("Closing DB")
		if err := db.Close(); err != nil {
			fmt.Println(err)
			return
		}
	}()

	fmt.Println("Initializing DB")
	err = eui.InitializeDB(db)
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println("Fetching Registrations")
	registrations, err := eui.Fetch(eui.Registries[0])
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println("Writing Registrations to DB")
	err = eui.WriteToDB(db, registrations)
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println("Searching for 70B3D57ED000AB69")
	res, err := eui.FindInDB(db, []byte("70B3D57ED000AB69"))
	if err != nil {
		fmt.Println(err)
		return
	}

	for i, res := range res {
		fmt.Printf("Result %d: %s\n", i+1, res.Name)
	}

}
Output:

Opening DB
Initializing DB
Fetching Registrations
Writing Registrations to DB
Searching for 70B3D57ED000AB69
Result 1: The Things Network Foundation
Closing DB

Index

Examples

Constants

This section is empty.

Variables

View Source
var ErrNotInitialized = errors.New("Database not initialized")
View Source
var Registries = []string{
	"https://standards.ieee.org/develop/regauth/oui36/oui36.csv",
	"https://standards.ieee.org/develop/regauth/oui28/mam.csv",
	"https://standards.ieee.org/develop/regauth/oui/oui.csv",
}

Functions

func InitializeDB

func InitializeDB(db *bolt.DB) error

func WriteToDB

func WriteToDB(db *bolt.DB, registrations []Registration) error

Types

type Registration

type Registration struct {
	Prefix string
	Name   string
}

func Fetch

func Fetch(url string) ([]Registration, error)

func FindInDB

func FindInDB(db *bolt.DB, eui []byte) (regs []Registration, err error)

type Registrations

type Registrations []Registration

func (Registrations) Len

func (r Registrations) Len() int

func (Registrations) Less

func (r Registrations) Less(i, j int) bool

func (Registrations) Swap

func (r Registrations) Swap(i, j int)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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