Skip to content

A library and CLI to fetch IP ranges from popular online sources

License

Notifications You must be signed in to change notification settings

jonhadfield/ip-fetcher

Repository files navigation

ip-fetcher

GoDoc Go Report Card

about

ip-fetcher is a go library and cli used to retrieve public ip prefixes from popular cloud and hosting providers. Please raise an issue if you have any issues or suggestions for new providers.

supported providers

CLI

install

Download the latest release here and then install:

install <ip-fetcher binary> /usr/local/bin/ip-fetcher

use: sudo install if on linux

run

ip-fetcher <provider> <options>

for example:

  • output aws prefixes to the console: ip-fetcher aws --stdout
  • save gcp prefixes to a file: ip-fetcher gcp --file prefixes.json

API

The following example uses the GCP (Google Cloud Platform) provider.

installation

go get github.com/jonhadfield/ip-fetcher/providers/gcp

basic usage

package main

import (
    "fmt"
    "github.com/jonhadfield/ip-fetcher/providers/gcp"
)

func main() {
    g := gcp.New()         // initialise client
    doc, err := g.Fetch()  // fetch prefixes document
    if err != nil {
        panic(err)
    }

    for _, p := range doc.IPv6Prefixes {
        fmt.Printf("%s %s %s\n", p.IPv6Prefix.String(), p.Service, p.Scope)
    }
}