Documentation ¶
Overview ¶
Package igd implements UPnP InternetGatewayDevice discovery, querying, and port mapping.
Index ¶
- Variables
- func Discover(ch chan<- Device, timeout time.Duration) error
- type Device
- type IGD
- func (n *IGD) AddPortMapping(protocol Protocol, internalPort, externalPort int, description string, ...) (int, error)
- func (n *IGD) DeletePortMapping(protocol Protocol, externalPort int) error
- func (n *IGD) FriendlyIdentifier() string
- func (n *IGD) FriendlyName() string
- func (n *IGD) GetExternalIPAddress() (ip net.IP, err error)
- func (n *IGD) GetLocalIPAddress() net.IP
- func (n *IGD) ID() string
- func (n *IGD) URL() *url.URL
- type IGDService
- type Protocol
Constants ¶
This section is empty.
Variables ¶
var Logger interface { Printf(format string, v ...interface{}) Println(v ...interface{}) } = nopLogger{}
Functions ¶
Types ¶
type IGD ¶
type IGD struct {
// contains filtered or unexported fields
}
An IGD is a UPnP InternetGatewayDevice.
func (*IGD) AddPortMapping ¶
func (n *IGD) AddPortMapping(protocol Protocol, internalPort, externalPort int, description string, duration time.Duration) (int, error)
AddPortMapping adds a port mapping to all relevant services on the specified InternetGatewayDevice. Port mapping will fail and return an error if action is fails for _any_ of the relevant services. For this reason, it is generally better to configure port mapping for each individual service instead.
func (*IGD) DeletePortMapping ¶
DeletePortMapping deletes a port mapping from all relevant services on the specified InternetGatewayDevice. Port mapping will fail and return an error if action is fails for _any_ of the relevant services. For this reason, it is generally better to configure port mapping for each individual service instead.
func (*IGD) FriendlyIdentifier ¶
FriendlyIdentifier returns a friendly identifier (friendly name + IP address) for the IGD.
func (*IGD) FriendlyName ¶
func (*IGD) GetExternalIPAddress ¶
GetExternalIPAddress returns the external IP address of the IGD, or an error if no service providing this feature exists.
func (*IGD) GetLocalIPAddress ¶
GetLocalIPAddress returns the IP address of the local network interface which is facing the IGD.
type IGDService ¶
An IGDService is a specific service provided by an IGD.
func (*IGDService) AddPortMapping ¶
func (s *IGDService) AddPortMapping(localIPAddress net.IP, protocol Protocol, internalPort, externalPort int, description string, duration time.Duration) error
AddPortMapping adds a port mapping to the specified IGD service.
func (*IGDService) DeletePortMapping ¶
func (s *IGDService) DeletePortMapping(protocol Protocol, externalPort int) error
DeletePortMapping deletes a port mapping from the specified IGD service.
func (*IGDService) GetExternalIPAddress ¶
func (s *IGDService) GetExternalIPAddress() (net.IP, error)
GetExternalIPAddress queries the IGD service for its external IP address. Returns nil if the external IP address is invalid or undefined, along with any relevant errors