upnp

package
v0.2.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

package upnp allows to query the un-authenticated UPnP fritzbox endpoints (with stats regarding the internet connection for instance).

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	BaseURL    string
	Services   map[string]*service // Services will be populated on "NewClient"
	HTTPClient *http.Client
}

func NewClient

func NewClient(addr string, client *http.Client) (*Client, error)

NewClient creates a new UPnP client and discover the services.

Argument addr should not have a trailing slash (usually http://192.168.178.1:49000). If client is nil, http.DefaultClient will be used.

func (Client) GetStrings

func (c Client) GetStrings(service, action string) (map[string]string, error)

GetStrings retrieves the values associated with the given (service, action). Call ListServicesActionsVariables to get the list of availables services, actions and variables.

func (Client) ListServicesActionsVariables

func (c Client) ListServicesActionsVariables() (map[string]map[string][]string, error)

ListServicesActionsVariables returns a list of services, with associated actions and variable names. See Example.

Example
package main

import (
	"fmt"

	"code.pfad.fr/fritzgox/upnp"
)

func main() {
	c, _ := upnp.NewClient("http://192.168.178.1:49000", nil)
	svc, _ := c.ListServicesActionsVariables()
	for s, actions := range svc {
		fmt.Println(s)
		for a, vars := range actions {
			fmt.Println(" - " + a)
			for _, v := range vars {
				fmt.Println("    " + v)
			}
		}
	}
}
Output:

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL