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,

[bash] [+] 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. [/bash]

Leave a Comment