Skip to content
a Golang library to get your external ip from multiple services
Go
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add readme documentation Apr 7, 2017
cmd/exip add logging Apr 7, 2017
.gitignore add initial code Apr 6, 2017
LICENSE.txt add initial code Apr 6, 2017
README.md update todo readme Apr 7, 2017
consensus.go simplify refact-left-over code Apr 25, 2017
consensus_test.go add initial code Apr 6, 2017
error.go add comments and clean up Apr 6, 2017
log.go remove unnececary log flag Apr 7, 2017
sources.go add logging Apr 7, 2017
types.go add logging Apr 7, 2017

README.md

Go External IP license

A Golang library to get your external ip from multiple services.

TODO

  • Unit-Tests + CI (Travis);
  • Design/Implement STUNSource, more info:

Docs

https://godoc.org/github.com/GlenDC/go-external-ip

Usage

Using the library can as simple as the following (runnable) example:

package main

import (
    "fmt"
    "github.com/glendc/go-external-ip"
)

func main() {
    // Create the default consensus,
    // using the default configuration and no logger.
    consensus := externalip.DefaultConsensus(nil, nil)
    // Get your IP,
    // which is never <nil> when err is <nil>.
    ip, err := consensus.ExternalIP()
    if err == nil {
        fmt.Println(ip.String()) // print IPv4/IPv6 in string format
    }
}

Please read the documentation for more information.

exip

This library also comes with a standalone command line application, which can be used to get your external IP, directly from your terminal.

install

$ go install github.com/glendc/go-external-ip/cmd/exip

usage

$ exip -h
Retrieve your external IP.

Usage:
    exip [flags]

Flags:
  -h help
    	show this usage message
  -t duration
    	consensus's voting timeout (default 5s)
  -v	log errors to STDERR, when defined
You can’t perform that action at this time.