goupnp/example/example_test.go

49 lines
1.2 KiB
Go
Raw Normal View History

package example_test
import (
"fmt"
"os"
"github.com/huin/goupnp/dcps/internetgateway1"
)
// Discovering a internet gateway devices on the local network, and asking each
// of them for their external IP address.
func Example_getExternalIPAddress() {
// import (
// "fmt"
// "os"
// "github.com/huin/goupnp/dcps/internetgateway1"
// )
fmt.Println("Running")
clients, errors, err := internetgateway1.NewWANPPPConnection1Clients()
if err != nil {
fmt.Fprintln(os.Stderr, "Error discovering service with UPnP: ", err)
return
}
if len(errors) > 0 {
fmt.Fprintf(os.Stderr, "Error discovering %d services:\n", len(errors))
for _, err := range errors {
fmt.Println(" ", err)
}
}
fmt.Fprintf(os.Stderr, "Successfully discovered %d services:\n", len(clients))
for _, client := range clients {
device := &client.RootDevice.Device
fmt.Fprintln(os.Stderr, " Device:", device.FriendlyName)
if addr, err := client.GetExternalIPAddress(); err != nil {
fmt.Fprintf(os.Stderr, " Failed to get external IP address: %v\n", err)
} else {
fmt.Fprintf(os.Stderr, " External IP address: %v\n", addr)
}
}
fmt.Println("Complete")
// Output:
// Running
// Complete
}