NAT type discovery tool using STUN written purely in Go.
Go to file
2019-09-22 12:22:30 -07:00
nats minor modifications 2019-09-15 02:54:51 -07:00
.gitignore todo: tests! 2019-09-13 18:11:20 -07:00
go.mod bump pion/turn version 2019-09-22 12:22:30 -07:00
go.sum bump pion/turn version 2019-09-22 12:22:30 -07:00
LICENSE Initial commit 2019-09-12 14:58:52 -07:00
main.go bump pion/turn version 2019-09-22 12:22:30 -07:00
README.md bump pion/turn version 2019-09-22 12:22:30 -07:00

go-nats

NAT type discovery tool using STUN written purely in Go, powered by pion.

Usage

$ go build
$ ./go-nats -h
Usage of ./go-nats:
  -s string
        STUN server address. (default "stun.sipgate.net:3478")
  -v	Verbose

Example:

$ ./go-nats -s stun.sipgate.net
{
  "isNatted": true,
  "mappingBehavior": 0,
  "filteringBehavior": 2,
  "portPreservation": true,
  "natType": "Port-restricted cone NAT",
  "externalIP": "23.3.5.241"
}

Depending on the type of NAT, it may take ~8 seconds.

Public STUN servers

STUN servers to use must support RFC 5780 (NAT Behavior Discovery Using STUN). Here's a list of public STUN servers that worked with go-nats as of Sep. 13, 2019.

  • stun.ekiga.net
  • stun.callwithus.com
  • stun.counterpath.net
  • stun.sipgate.net
  • stun.sipgate.net:10000
  • stun.1-voip.com
  • stun.12connect.com
  • stun.1und1.de
  • stun.3clogic.com

TODO: there may be more from this list: Emercoin/ENUMER projects