Script to find UPNP devices / servers in a network

This post details about how you can search and identify the details about the UPNP devices available in your office or Home local network.

UPNP Info Python script

$ git clone https://github.com/lynxbee/upnp_info.git
$ cd upnp_info 
$ python upnp_info.py

Note: while running above script, refer another post “Solved: ImportError: No module named requests” if you get an error.

If we run above script on your Linux / Ubuntu PC, it will show UPNP servers , devices information as below,

[+] Discovering UPnP locations
[+] Discovery complete
[+] 5 locations found:
	-> http://192.168.0.100:52323/dmr.xml
	-> http://192.168.0.102:58645/dev/400449f9-a944-42b4-b22f-5e8a011b32d3/desc.xml
	-> http://192.168.0.103:8200/rootDesc.xml
	-> http://192.168.0.102:58645/dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/desc.xml
	-> http://192.168.0.1:1900/igd.xml
[+] Loading http://192.168.0.100:52323/dmr.xml...
	-> Server String: Linux/2.6 UPnP/1.0 KDL-32W600A/1.7
	==== XML Attributes ===
	-> Device Type: urn:schemas-upnp-org:device:MediaRenderer:1
	-> Friendly Name: BRAVIA KDL-32W600A
	-> Manufacturer: Sony Corporation
	-> Manufacturer URL: http://www.sony.net/
	-> Model Name: KDL-32W600A
	-> Model Number: MINT1.7.0.1
	-> Services:
		=> Service Type: urn:schemas-upnp-org:service:RenderingControl:1
		=> Control: /upnp/control/RenderingControl
		=> Events: /upnp/event/RenderingControl
		=> API: http://192.168.0.100:52323/RenderingControlSCPD.xml
			- ListPresets
			- SelectPreset
			- GetMute
			- SetMute
			- GetVolume
			- SetVolume
		=> Service Type: urn:schemas-upnp-org:service:ConnectionManager:1
		=> Control: /upnp/control/ConnectionManager
		=> Events: /upnp/event/ConnectionManager
		=> API: http://192.168.0.100:52323/ConnectionManagerSCPD.xml
			- GetProtocolInfo
			- GetCurrentConnectionIDs
			- GetCurrentConnectionInfo
		=> Service Type: urn:schemas-upnp-org:service:AVTransport:1
		=> Control: /upnp/control/AVTransport
		=> Events: /upnp/event/AVTransport
		=> API: http://192.168.0.100:52323/AVTransportSCPD.xml
			- SetAVTransportURI
			- SetNextAVTransportURI
			- GetMediaInfo
			- GetTransportInfo
			- GetPositionInfo
			- GetDeviceCapabilities
			- GetTransportSettings
			- Stop
			- Play
			- Pause
			- Seek
			- Next
			- Previous
			- GetCurrentTransportActions
			- X_DLNA_GetBytePositionInfo
		=> Service Type: urn:dial-multiscreen-org:service:dial:1
		=> Control: /upnp/control/DIAL
		=> Events: None
		=> API: http://192.168.0.100:52323/DIALSCPD.xml
		=> Service Type: urn:schemas-sony-com:service:IRCC:1
		=> Control: http://192.168.0.100/sony/IRCC
		=> Events: None
		=> API: http://192.168.0.100:52323/IRCCSCPD.xml
			- X_SendIRCC
			- X_GetStatus
		=> Service Type: urn:schemas-sony-com:service:ScalarWebAPI:1
		=> Control: /upnp/control/ScalarAPI
		=> Events: None
		=> API: http://192.168.0.100:52323/ScalarWebApiSCPD.xml
[+] Loading http://192.168.0.102:58645/dev/400449f9-a944-42b4-b22f-5e8a011b32d3/desc.xml...
	-> Server String: Linux/4.4.192-perf UPnP/1.0 BubbleUPnP/3.4.7
	==== XML Attributes ===
	-> Device Type: urn:schemas-upnp-org:device:MediaRenderer:1
	-> Friendly Name: BubbleUPnP (Nokia 7 plus)
	-> Manufacturer: Bubblesoft
	-> Manufacturer URL: http://forum.xda-developers.com/showthread.php?t=1118891
	-> Model Description: BubbleUPnP Media Renderer
	-> Model Name: BubbleUPnP Media Renderer
	-> Model Number: 3.4.7
	-> Services:
		=> Service Type: urn:schemas-upnp-org:service:AVTransport:1
		=> Control: /dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/AVTransport/action
		=> Events: /dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/AVTransport/event
		=> API: http://192.168.0.102:58645/dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/AVTransport/desc.xml
			- Pause
			- SetRecordQualityMode
			- Stop
			- GetPositionInfo
			- SetPlayMode
			- Play
			- GetDeviceCapabilities
			- GetMediaInfo
			- Next
			- GetTransportInfo
			- Previous
			- Record
			- SetAVTransportURI
			- GetTransportSettings
			- Seek
			- GetCurrentTransportActions
		=> Service Type: urn:schemas-upnp-org:service:RenderingControl:1
		=> Control: /dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/RenderingControl/action
		=> Events: /dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/RenderingControl/event
		=> API: http://192.168.0.102:58645/dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/RenderingControl/desc.xml
			- GetMute
			- GetVolume
			- SelectPreset
			- SetVolume
			- ListPresets
			- SetMute
		=> Service Type: urn:schemas-upnp-org:service:ConnectionManager:1
		=> Control: /dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/ConnectionManager/action
		=> Events: /dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/ConnectionManager/event
		=> API: http://192.168.0.102:58645/dev/400449f9-a944-42b4-b22f-5e8a011b32d3/svc/upnp-org/ConnectionManager/desc.xml
			- GetCurrentConnectionIDs
			- GetProtocolInfo
			- GetCurrentConnectionInfo
[+] Loading http://192.168.0.103:8200/rootDesc.xml...
	-> Server String: Ubuntu DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.2.1
	==== XML Attributes ===
	-> Device Type: urn:schemas-upnp-org:device:MediaServer:1
	-> Friendly Name: devlab: minidlna
	-> Manufacturer: Justin Maggard
	-> Manufacturer URL: http://www.netgear.com/
	-> Model Description: MiniDLNA on Linux
	-> Model Name: Windows Media Connect compatible (MiniDLNA)
	-> Model Number: 1.2.1
	-> Services:
		=> Service Type: urn:schemas-upnp-org:service:ContentDirectory:1
		=> Control: /ctl/ContentDir
		=> Events: /evt/ContentDir
		=> API: http://192.168.0.103:8200/ContentDir.xml
			- GetSearchCapabilities
			- GetSortCapabilities
			- GetSystemUpdateID
			- Browse
			- Search
			- UpdateObject
		=> Service Type: urn:schemas-upnp-org:service:ConnectionManager:1
		=> Control: /ctl/ConnectionMgr
		=> Events: /evt/ConnectionMgr
		=> API: http://192.168.0.103:8200/ConnectionMgr.xml
			- GetProtocolInfo
			- GetCurrentConnectionIDs
			- GetCurrentConnectionInfo
		=> Service Type: urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1
		=> Control: /ctl/X_MS_MediaReceiverRegistrar
		=> Events: /evt/X_MS_MediaReceiverRegistrar
		=> API: http://192.168.0.103:8200/X_MS_MediaReceiverRegistrar.xml
			- IsAuthorized
			- IsValidated
			- RegisterDevice
	[+] Content browsing available. Looking up base directories...
		Storage Folder: Browse Folders
		Storage Folder: Music
		Storage Folder: Pictures
		Storage Folder: Video
[+] Loading http://192.168.0.102:58645/dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/desc.xml...
	-> Server String: Linux/4.4.192-perf UPnP/1.0 BubbleUPnP/3.4.7
	==== XML Attributes ===
	-> Device Type: urn:schemas-upnp-org:device:MediaServer:1
	-> Friendly Name: BubbleUPnP Media Server (Nokia 7 plus)
	-> Manufacturer: Bubblesoft
	-> Manufacturer URL: http://forum.xda-developers.com/showthread.php?t=1118891
	-> Model Description: BubbleUPnP Media Server
	-> Model Name: BubbleUPnP Media Server
	-> Model Number: 3.4.7
	-> Services:
		=> Service Type: urn:schemas-upnp-org:service:ConnectionManager:1
		=> Control: /dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/upnp-org/ConnectionManager/action
		=> Events: /dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/upnp-org/ConnectionManager/event
		=> API: http://192.168.0.102:58645/dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/upnp-org/ConnectionManager/desc.xml
			- GetCurrentConnectionIDs
			- GetProtocolInfo
			- GetCurrentConnectionInfo
		=> Service Type: urn:schemas-upnp-org:service:ContentDirectory:1
		=> Control: /dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/upnp-org/ContentDirectory/action
		=> Events: /dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/upnp-org/ContentDirectory/event
		=> API: http://192.168.0.102:58645/dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/upnp-org/ContentDirectory/desc.xml
			- Browse
			- SyncGoogleMusic
			- GetSearchCapabilities
			- GetSortCapabilities
			- Search
			- GetSystemUpdateID
		=> Service Type: urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1
		=> Control: /dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/microsoft.com/X_MS_MediaReceiverRegistrar/action
		=> Events: /dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/microsoft.com/X_MS_MediaReceiverRegistrar/event
		=> API: http://192.168.0.102:58645/dev/c0e98591-5cb5-4a62-8685-ff5d3a3588ac/svc/microsoft.com/X_MS_MediaReceiverRegistrar/desc.xml
			- GetAuthorizationGrantedUpdateID
			- GetValidationSucceededUpdateID
			- IsValidated
			- GetAuthorizationDeniedUpdateID
			- GetValidationRevokedUpdateID
			- IsAuthorized
			- RegisterDevice
	[+] Content browsing available. Looking up base directories...
		Storage Folder: Music
		Storage Folder: Video
		Storage Folder: Images
		Storage Folder: Internal storage
		Storage Folder: Saved playlists
		Storage Folder: Google Music
		Storage Folder: Google Drive
		Storage Folder: Google Photos
		Storage Folder: Dropbox
		Storage Folder: Box
[+] Loading http://192.168.0.1:1900/igd.xml...
	-> Server String: ipos/7.0 UPnP/1.0 TL-WR740N/4.0
	==== XML Attributes ===
	-> Device Type: urn:schemas-upnp-org:device:InternetGatewayDevice:1
	-> Friendly Name: Wireless Router TL-WR740N
	-> Manufacturer: TP-LINK
	-> Manufacturer URL: http://www.tp-link.com
	-> Model Description: Wireless Router TL-WR740N
	-> Model Name: TL-WR740N
	-> Model Number: 4.0
	-> Services:
		=> Service Type: urn:schemas-upnp-org:service:Layer3Forwarding:1
		=> Control: /l3f
		=> Events: /l3f
		=> API: http://192.168.0.1:1900/l3f.xml
			- SetDefaultConnectionService
			- GetDefaultConnectionService
		=> Service Type: urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1
		=> Control: /ifc
		=> Events: /ifc
		=> API: http://192.168.0.1:1900/ifc.xml
			- GetCommonLinkProperties
			- GetTotalBytesSent
			- GetTotalBytesReceived
			- GetTotalPacketsSent
			- GetTotalPacketsReceived
		=> Service Type: urn:schemas-upnp-org:service:WANIPConnection:1
		=> Control: /ipc
		=> Events: /ipc
		=> API: http://192.168.0.1:1900/ipc.xml
			- SetConnectionType
			- GetConnectionTypeInfo
			- RequestConnection
			- ForceTermination
			- GetStatusInfo
			- GetNATRSIPStatus
			- GetGenericPortMappingEntry
			- GetSpecificPortMappingEntry
			- AddPortMapping
			- DeletePortMapping
			- GetExternalIPAddress
		=> Service Type: urn:schemas-wifialliance-org:service:WFAWLANConfig:1
		=> Control: http://192.168.0.1:1910/WFAWLANConfig/control
		=> Events: http://192.168.0.1:1910/WFAWLANConfig/event
		=> API: http://192.168.0.1:1900/http://192.168.0.1:1900/wfc.xml
	[+] IGD port mapping available. Looking up current mappings...
[+] Fin.

Leave a Comment