mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-20 11:55:18 +00:00
49 lines
1.2 KiB
Markdown
49 lines
1.2 KiB
Markdown
|
go-nat-pmp
|
||
|
==========
|
||
|
|
||
|
A Go language client for the NAT-PMP internet protocol for port mapping and discovering the external
|
||
|
IP address of a firewall.
|
||
|
|
||
|
NAT-PMP is supported by Apple brand routers and open source routers like Tomato and DD-WRT.
|
||
|
|
||
|
See http://tools.ietf.org/html/draft-cheshire-nat-pmp-03
|
||
|
|
||
|
Get the package
|
||
|
---------------
|
||
|
|
||
|
go get -u github.com/jackpal/go-nat-pmp
|
||
|
|
||
|
Usage
|
||
|
-----
|
||
|
|
||
|
import natpmp "github.com/jackpal/go-nat-pmp"
|
||
|
|
||
|
client := natpmp.NewClient(gatewayIP)
|
||
|
response, err := client.GetExternalAddress()
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
print("External IP address:", response.ExternalIPAddress)
|
||
|
|
||
|
Notes
|
||
|
-----
|
||
|
|
||
|
There doesn't seem to be an easy way to programmatically determine the address of the default gateway.
|
||
|
(Linux and OSX have a "routes" kernel API that can be examined to get this information, but there is
|
||
|
no Go package for getting this information.)
|
||
|
|
||
|
Clients
|
||
|
-------
|
||
|
|
||
|
This library is used in the Taipei Torrent BitTorrent client http://github.com/jackpal/Taipei-Torrent
|
||
|
|
||
|
Complete documentation
|
||
|
----------------------
|
||
|
|
||
|
http://godoc.org/github.com/jackpal/go-nat-pmp
|
||
|
|
||
|
License
|
||
|
-------
|
||
|
|
||
|
This project is licensed under the Apache License 2.0.
|