Skip to main content

An easy to use UPnP TR64 protocol library

Project description

This library supports the discovery of UPnP devices in the local network and let you execute actions on them if the device supports any. Also it contains a convenient way to execute TR64 protocol actions on routers or other network devices which supports TR64.

>>> results =
>>> print(results[0])
LOC: SRV: urn:dslforum-org:device:InternetGatewayDevice:1
>>> device = simpletr64.DeviceTR64(hostname=, port=49000)
>>> device.execute("/upnp/control/hosts", "urn:dslforum-org:service:Hosts:1", "GetGenericHostEntry", NewIndex=1)
{'NewActive': '0', 'NewIPAddress': '', 'NewMACAddress': '9C:20:7B:E7:FF:5F', 'NewInterfaceType':
    'Ethernet', 'NewHostName': 'Apple-TV', 'NewAddressSource': 'DHCP', 'NewLeaseTimeRemaining': '0'}

or even easier, execute:

>>> device = System("")
>>> device.setupTR64Device("")
>>> print(device.getSystemInfo().manufactureName)

On the command line:

$ upnp_tools discover


  • Discovery of UPnP devices in the local network

  • Gathering of UPnP device information’s

  • Executing of UPnP actions

  • Authentication for username/password or password only

  • HTTP(S) proxy support

  • Unicode

  • Provides shell command ‘upnp_tools’ for all above


To install Simple TR64, simply:

$ pip install simpletr64


Please, see the documentation here

Release History

1.0.6 (2016-01-24)

  • Fix error in upnp_tools when no command was given

1.0.5 (2016-01-15)

  • Adding the support for DNLA devices which announce some device definitions slightly differently

  • Moving all tools/ scripts into one “upnp_tools” script and move it to bin so it get installed into exe path

1.0.4 (2016-01-11)

  • Adding Fritz specific actions

  • Fix a bug with installing the package, thanks to Raphael Sobik

1.0.3 (2016-01-08)

  • Added timeout to any TR64 action

  • Added getSpecificAssociatedDeviceInfo in Wifi actions

  • Added setEnable to toggle the LAN/WAN/Wifi interface on/off

  • Added setSSID and setChannel to set these Wifi interface parameters accordingly

  • Added softwareUpdateAvailable

  • Added requestConnection and terminateConnection for a WAN connection

  • Added AVM Fritz Box product specific capabilities in new Fritz class

  • Fix reboot action

  • Fix all TR64 actions with bool results which were always True

1.0.2 (2016-01-06)

  • Added the ability to request the namespace for a TR64 action

  • Added interface ID’s to all actions in Lan, Wan and Wifi

  • Added a factory method to DeviceTR64 which takes an URL to the device definitions

  • Improved error handling on XML parsing problems of any content

  • Changed the declaration of getGenericAssociatedDeviceInfo for consistency reasons

  • Changed for all Wifi actions that the interface id is now optional

  • Changed all TR64 action classes to be a sub class of DeviceTR64

  • Fix an issue with relative URL’s in the device definition

1.0.1 (2016-01-04)

  • Added better error reporting

  • Added timeout to any network interaction

  • added the possibility to discover more than one service at the same time

  • fixed getHostDetailsByMACAddress()

1.0.0 (2016-01-02)

  • Birth!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simpleTR64-1.0.6.tar.gz (36.8 kB view hashes)

Uploaded source

Built Distribution

simpleTR64-1.0.6-py2.py3-none-any.whl (50.1 kB view hashes)

Uploaded 2 7

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page