{"id":18896180,"url":"https://github.com/tenable/upnp_info","last_synced_at":"2025-08-20T20:31:59.437Z","repository":{"id":136300622,"uuid":"70637625","full_name":"tenable/upnp_info","owner":"tenable","description":"A simple script for discovery and analysis of UPnP servers","archived":false,"fork":false,"pushed_at":"2022-11-29T20:34:01.000Z","size":10,"stargazers_count":171,"open_issues_count":6,"forks_count":46,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-07T20:49:11.382Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tenable.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-11T21:38:20.000Z","updated_at":"2025-04-03T15:54:43.000Z","dependencies_parsed_at":"2023-05-23T01:15:43.753Z","dependency_job_id":null,"html_url":"https://github.com/tenable/upnp_info","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tenable/upnp_info","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tenable%2Fupnp_info","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tenable%2Fupnp_info/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tenable%2Fupnp_info/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tenable%2Fupnp_info/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tenable","download_url":"https://codeload.github.com/tenable/upnp_info/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tenable%2Fupnp_info/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271378680,"owners_count":24749192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T08:32:49.990Z","updated_at":"2025-08-20T20:31:59.174Z","avatar_url":"https://github.com/tenable.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# upnp_info.py\n## Purpose\nThis script was written so that anyone can easily find the UPnP servers on their network. While tools like this have and do exist, none are as simple as downloading a file and executing it via Python.\n\n## Dependencies\nThis script depends on 'requests'. You can install requests via pip:\n\n``\npip install requests\n``\n\n## Usage\nThe script takes no input and is simply executed via python:\n\n``\npython upnp_info.py\n``\n\n## Troubleshooting\nupnp_info.py needs to be able access UDP port 1900. If you aren't getting any results but you think you should be then check your firewall.\n\n## Features\nupnp_info.py discovers all UPnP servers within multicast range\n\n```\n$ python upnp_info.py \n[+] Discovering UPnP locations\n[+] Discovery complete\n[+] 11 locations found:\n\t-\u003e http://192.168.0.254:49152/wps_device.xml\n\t-\u003e http://192.168.1.217:49153/description.xml\n\t-\u003e http://192.168.1.217:35848/rootDesc.xml\n\t-\u003e http://192.168.1.217:32469/DeviceDescription.xml\n\t-\u003e http://192.168.1.217:49152/tvdevicedesc.xml\n\t-\u003e http://192.168.1.217:35439/rootDesc.xml\n\t-\u003e http://192.168.1.251:49451/luaupnp.xml\n\t-\u003e http://192.168.1.1:45973/rootDesc.xml\n\t-\u003e http://192.168.1.1:1990/WFADevice.xml\n\t-\u003e http://192.168.1.1:1901/root.xml\n\t-\u003e http://192.168.1.217:8200/rootDesc.xml\n```\nIt parses the service's XML and displays it for the user:\n\n```\n[+] Loading http://192.168.1.217:49153/description.xml...\n\t-\u003e Server String: Linux/4.4.0-36-generic, UPnP/1.0, MediaTomb/0.12.2\n\t==== XML Attributes ===\n\t-\u003e Device Type: urn:schemas-upnp-org:device:MediaServer:1\n\t-\u003e Friendly Name: MediaTomb\n\t-\u003e Manufacturer: (c) 2005-2008 Gena Batyan \u003cbgeradz@mediatomb.cc\u003e, Sergey Bostandzhyan \u003cjin@mediatomb.cc\u003e, Leonhard Wimmer \u003cleo@mediatomb.cc\u003e\n\t-\u003e Manufacturer URL: http://mediatomb.cc/\n\t-\u003e Model Description: Free UPnP AV MediaServer, GNU GPL\n\t-\u003e Model Name: MediaTomb\n\t-\u003e Model Number: 0.12.2\n\t-\u003e Services:\n\t\t=\u003e Service Type: urn:schemas-upnp-org:service:ConnectionManager:1\n\t\t=\u003e Control: /upnp/control/cm\n\t\t=\u003e Events: /upnp/event/cm\n\t\t=\u003e API: http://192.168.1.217:49153/cm.xml\n\t\t\t- GetCurrentConnectionIDs\n\t\t\t- GetCurrentConnectionInfo\n\t\t\t- GetProtocolInfo\n\t\t=\u003e Service Type: urn:schemas-upnp-org:service:ContentDirectory:1\n\t\t=\u003e Control: /upnp/control/cds\n\t\t=\u003e Events: /upnp/event/cds\n\t\t=\u003e API: http://192.168.1.217:49153/cds.xml\n\t\t\t- Browse\n\t\t\t- GetSearchCapabilities\n\t\t\t- GetSortCapabilities\n\t\t\t- GetSystemUpdateID\n```\nIt can browse file shares:\n\n```\n[+] Content browsing available. Looking up base directories...\n\t\tStorage Folder: PC Directory\n\t\tStorage Folder: Photos\n\t\tStorage Folder: wat\n```\n\nIt can show port mappings:\n\n```\n[+] IGD port mapping available. Looking up current mappings...\n\t\t[UDP] *:60579 =\u003e 192.168.1.186:60579 | Desc: None\n```\n\n## License\nThe license is BSD 3-clause. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftenable%2Fupnp_info","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftenable%2Fupnp_info","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftenable%2Fupnp_info/lists"}