diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..034cbc9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,11 @@ +## Problem statement + +Please remove the sections that don't apply + +## Steps to reproduce + +## Environment + +go-external-ip commit: +go version: +OS: diff --git a/README.md b/README.md index 04ec4a4..dbef2f7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,69 @@ -# Go External IP +# Go External IP [![license](https://img.shields.io/github/license/glendc/go-external-ip.svg)](https://github.com/GlenDC/go-external-ip/blob/master/LICENSE.txt) -TODO: +A Golang library to get your external ip from multiple services. -+ README Documentation; -+ Unit-Tests; +## TODO + ++ Unit-Tests + CI (Travis); ++ Investigate support for (a) STUN protocol(s); + +## Docs + +https://godoc.org/github.com/GlenDC/go-external-ip + +## Usage + +Using the library can as simple as the following (runnable) example: + +```go +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 when err is . + ip, err := consensus.ExternalIP() + if err == nil { + fmt.Println(ip.String()) // print IPv4/IPv6 in string format + } +} +``` + +Please read [the documentation][docs] 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 +``` + +[docs]: https://godoc.org/github.com/GlenDC/go-external-ip