Documentation ¶
Overview ¶
Serves as examples of using the goupnp library.
To run examples and see the output for your local network, run the following command (specifically including the -v flag):
go test -v github.com/huin/goupnp/example
Example (ReuseDiscoveredDevice) ¶
package main import ( "fmt" "net/url" "os" "github.com/huin/goupnp" "github.com/huin/goupnp/dcps/internetgateway1" ) func main() { var allMaybeRootDevices []goupnp.MaybeRootDevice for _, urn := range []string{internetgateway1.URN_WANPPPConnection_1, internetgateway1.URN_WANIPConnection_1} { maybeRootDevices, err := goupnp.DiscoverDevices(internetgateway1.URN_WANPPPConnection_1) if err != nil { fmt.Fprintf(os.Stderr, "Could not discover %s devices: %v\n", urn, err) } allMaybeRootDevices = append(allMaybeRootDevices, maybeRootDevices...) } locations := make([]*url.URL, 0, len(allMaybeRootDevices)) fmt.Fprintf(os.Stderr, "Found %d devices:\n", len(allMaybeRootDevices)) for _, maybeRootDevice := range allMaybeRootDevices { if maybeRootDevice.Err != nil { fmt.Fprintln(os.Stderr, " Failed to probe device at ", maybeRootDevice.Location.String()) } else { locations = append(locations, maybeRootDevice.Location) fmt.Fprintln(os.Stderr, " Successfully probed device at ", maybeRootDevice.Location.String()) } } fmt.Fprintf(os.Stderr, "Attempt to re-acquire %d devices:\n", len(locations)) for _, location := range locations { if _, err := goupnp.DeviceByURL(location); err != nil { fmt.Fprintf(os.Stderr, " Failed to reacquire device at %s: %v\n", location.String(), err) } else { fmt.Fprintf(os.Stderr, " Successfully reacquired device at %s\n", location.String()) } } }
Output:
Click to show internal directories.
Click to hide internal directories.