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.


Subscribe with Valid Email Id to receive updates in Inbox. ( Secured by Google FeedBurner )

   


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.
lynxbee_ezoic

Leave a Comment

Android Android Build system Android Commands Android Java Applications Application Libraries Application Stack / User Interface Bash / Shell Scripts Bluetooth driver Cloud Technologies Commands and Packages Compilation Content Management System Core Kernel C Programs Development & Build Development, Debugging and Performance Tools Development Environment Setup Django & REST Api Errors & Failures Git Hardware Platforms HTML JAVA Programs Linux, OS Concepts and Networking Linux Device Drivers Linux Host, Ubuntu, SysAdmin Linux Kernel Linux Networking Middleware Libraries, HAL Multimedia Audio, Video, Images NDK / Middleware / HAL OS Concepts PHP Programming Languages Scripting and Automation Search Engine Optimisation ( SEO ) Social Media Source Code Management ( SCM ) System Administration, Security Testing and Debugging Uncategorized Web design and development Website Hosting Wordpress Yocto / Bitbake / Openembedded