# README
Go External IP


A Golang library to get your external ip from multiple services.
TODO
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)
// By default Ipv4 or Ipv6 is returned,
// use the function below to limit yourself to IPv4,
// or pass in `6` instead to limit yourself to IPv6.
// consensus.UseIPProtocol(4)
// 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
-p uint
IP Protocol to be used (0, 4, or 6)
-t duration
consensus's voting timeout (default 5s)
-v log errors to STDERR, when defined
# Packages
No description provided by the author
# Functions
DefaultConsensus returns a consensus filled with default and recommended HTTPSources.
DefaultConsensusConfig returns the ConsensusConfig, with the default values: + Timeout: 30 seconds;.
NewConsensus creates a new Consensus, with no sources.
NewHTTPSource creates a HTTP Source object, which can be used to request the (external) IP from.
NewLogger returns a new standard logger, with a given writer.
# Variables
ErrInsufficientWeight is returned when a voter's weight is invalid.
ErrInvalidProtocol is used when setting an invalid ip protocol on the conensus.
ErrNoIP is returned by the Consensus when no vote was casted successfully.
ErrNoSource is returned when a voter is added, which doesn't have a source specified.
# Structs
Consensus the type at the center of this library, and is the main entry point for users.
ConsensusConfig is used to configure the Consensus, while creating it.
HTTPSource is the default source, to get the external IP from.
# Interfaces
Source defines the part of a voter which gives the actual voting value (IP).
# Type aliases
ContentParser can be used to add a parser to an HTTPSource to parse the raw content returned from a website, and return the IP.
InvalidIPError is returned when an value returned is invalid.