首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法显示本地网络C++内的所有UPnP设备

基础概念

UPnP(Universal Plug and Play,通用即插即用)是一种网络协议,允许设备在局域网内自动发现和通信。它主要用于简化设备的网络配置过程,使得设备能够自动获取IP地址、与其他设备通信等。

相关优势

  1. 自动化配置:设备可以自动获取IP地址和其他网络设置。
  2. 简化安装:用户无需手动配置网络设置,设备可以自动发现并连接到网络。
  3. 跨平台兼容性:UPnP协议在多种操作系统和设备上都能工作。

类型

  • 设备发现:通过SSDP(Simple Service Discovery Protocol)协议发现网络中的UPnP设备。
  • 设备控制:使用SOAP(Simple Object Access Protocol)协议控制设备。
  • 事件通知:设备可以发送状态变化的通知给客户端。

应用场景

  • 家庭自动化:智能灯泡、智能插座等设备可以通过UPnP协议自动发现和控制。
  • 多媒体共享:媒体服务器可以通过UPnP协议共享媒体文件给客户端设备。
  • 打印服务:打印机可以通过UPnP协议自动发现并提供打印服务。

遇到的问题及原因

问题描述:无法显示本地网络内的所有UPnP设备。

可能原因

  1. 防火墙或安全软件阻止了UPnP通信:防火墙或安全软件可能阻止了SSDP端口的通信。
  2. 设备未启用UPnP功能:某些设备可能默认关闭了UPnP功能。
  3. 网络配置问题:网络中的路由器或其他设备可能未正确配置UPnP支持。
  4. 代码实现问题:C++代码中可能存在错误,导致无法正确发现UPnP设备。

解决方法

检查防火墙和安全软件设置

确保防火墙和安全软件允许UPnP通信。通常需要开放以下端口:

  • SSDP多播地址:239.255.255.250
  • SSDP端口:1900

确认设备启用UPnP功能

检查网络中的设备是否启用了UPnP功能。可以通过设备的设置菜单进行确认。

检查网络配置

确保路由器或其他网络设备支持并启用了UPnP功能。

示例代码

以下是一个简单的C++示例代码,用于发现本地网络内的UPnP设备:

代码语言:txt
复制
#include <iostream>
#include <string>
#include <vector>
#include <boost/asio.hpp>
#include <boost/bind.hpp>

using boost::asio::ip::udp;

void handle_receive(const boost::system::error_code& error, std::size_t bytes_transferred, udp::socket& socket, std::vector<char>& buffer) {
    if (!error) {
        std::string response(buffer.data(), bytes_transferred);
        std::cout << "Received UPnP response:\n" << response << std::endl;
        // 解析响应并提取设备信息
    }
}

void discover_upnp_devices() {
    boost::asio::io_context io_context;
    udp::socket socket(io_context, udp::endpoint(udp::v4(), 0));
    socket.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address("239.255.255.250", boost::asio::error::get_default_error_condition(0).default_error_condition().value())));

    std::vector<char> buffer(65536);
    udp::endpoint sender_endpoint;

    // 发送M-SEARCH请求
    std::string request = "M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nMAN: \"ssdp:discover\"\r\nMX: 3\r\nST: ssdp:all\r\n\r\n";
    socket.send_to(boost::asio::buffer(request), udp::endpoint(boost::asio::ip::make_address("239.255.255.250", boost::asio::error::get_default_error_condition(0).default_error_condition().value()), 1900));

    // 接收响应
    socket.async_receive_from(boost::asio::buffer(buffer), sender_endpoint, boost::bind(handle_receive, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, boost::ref(socket), boost::ref(buffer)));

    io_context.run();
}

int main() {
    discover_upnp_devices();
    return 0;
}

注意事项

  1. 依赖库:上述代码使用了Boost.Asio库进行网络通信。确保在编译时链接相应的库。
  2. 错误处理:在实际应用中,需要添加更多的错误处理逻辑,以确保程序的健壮性。

通过以上步骤和代码示例,应该能够解决无法显示本地网络内所有UPnP设备的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

EasyCVR国标设备因为订阅未开启导致通道无法显示的问题处理

去年年底,我们在EasyCVR视频服务云平台当中增加了用户管理的功能,多个用户可以有同一个角色,每个角色可以分配多个设备,从而形成一个良性的分级管理关系。...有的客户现场反馈设备接入EasyCVR后不显示通道数,通道上不来,造成这个问题的原因很多,我们需要逐步排查,之前也介绍过很多次不同原因导致的该问题,大家可以翻阅我们以前的博文了解一下。...为了检查是否是网络端口还是设备问题,我们把设备接到我们演示平台上查看,接一路设备到公网上验证,发现都是正常可以播放的。...这就说明设备和网络都没问题,因此我们认为应该是需要订阅,因此修改下订阅的配置为1。 修改后重启服务发现通道在线,视频可以播放。 本文我们再拓展一下关于订阅的机制。...订阅是TSINGSEE青犀视频开发国标系统中的一个机制,主要目的就是保持上下级域之间的目录结构,设备状态保持一致。

1.7K20

02-01 关于端口映射

端口映射是网络配置中的一项技术,它通过路由器或防火墙将外部网络的请求转发到内网中指定设备的特定端口,使外部设备能够访问本地网络中的服务。...端口:设备内运行的服务或应用程序的入口,就像房子的不同房间。 ​ 端口的编号范围是 0 到 65535: 0-1023:系统端口,常用于 HTTP(80)、HTTPS(443)等常见协议。...路由器接收到请求后,查找其配置的端口映射规则。 如果匹配规则,路由器将请求转发到本地网络中的特定设备。 本地设备处理请求,并通过相同的端口将数据返回。 ​...根据一些研究,大约76%的路由器默认启用了UPnP功能。此外,多媒体设备也有较高的UPnP兼容性,约27%的多媒体设备支持UPnP。...一般情况下,这个功能都是在高级设置中: ​ 有些是UPnP,有些是端口映射,还有些是端口触发,所有的概念我们上面都讲过了,最终实现的功能都是一样的。

15010
  • TCPIP之网络地址转换(NAT)NAT动机:NAT 实现NAT穿透问题

    我们知道ipv4协议提供的IP地址是有限的,为了解决IP地址不足的问题,于是就有了网络地址转换(NAT),它的思想就是给一个局域网络分配一个IP地址就够了,对于这个网络内的主机,则分配私有地址,这些私有地址对外是不可见的...image.png 所有离开本地网络去往Internet的数据报的源IP地址需替换为相同的NAT。 IP地址: 138.76.29.7以及不同的端口号。...本地网络内通信的IP数据报的源与目的IP地址均在子网10.0.0/24内。...NAT动机: 只需/能从ISP申请一个IP地址 • IPv4地址耗尽 本地网络设备IP地址的变更,无需通告外界网络 变更ISP时,无需修改内部网络设备IP地址 内部网络设备对外界网络不可见,即不可直接寻址...image.png 解决方案1 静态配置NAT,将特定端口的连接请求转发给服务器 e.g., (138.76.29.7, 2500) 总是转发给(10.0.0.1, 25000) 解决方案2 利用UPnP

    3K20

    Qt(C++)使用QChart动态显示3个设备的温度变化曲线

    一、介绍 Qt的QChart是一个用于绘制图表和可视化数据的类。提供了一个灵活的、可扩展的、跨平台的图表绘制解决方案,可以用于各种应用程序,如数据分析、科学计算、金融交易等。...QChart支持多种类型的图表,包括折线图、散点图、柱状图、饼图等。它还支持多个数据系列(datasets)在同一个图表中显示,并且可以自定义各种图表属性和样式,如坐标轴标签、标题、图例等。...QChart还支持多种数据源(data sources),可以来自Qt的数据模型(data models)、CSV文件、JSON文件等。...数据源可以是任何支持迭代器(iterator)的类型,因此可以轻松地与其他Qt组件集成。

    63031

    黑客使用漏洞通过Wi-Fi网络劫持Android中的Firefox

    SSDP代表简单服务发现协议,它是基于UDP的协议,是UPnP的一部分,用于查找网络上的其他设备。...在Android中,Firefox会定期向连接到同一网络的其他设备发送SSDP发现消息,以寻找要投放的第二屏设备。...本地网络上的任何设备都可以响应这些广播,并提供一个位置来获取有关UPnP设备的详细信息,此后,Firefox尝试访问该位置,期望找到符合UPnP规范的XML文件。...为此,连接到目标Wi-Fi网络的攻击者可以在其设备上运行恶意的SSDP服务器,并通过Firefox在附近的Android设备上触发基于意图的命令,而无需受害者进行任何交互。...他们只是在饮在咖啡馆的Wi-Fi上喝咖啡时,他们的设备将在攻击者的控制下开始启动应用程序URI。”

    49120

    Macast:一款可实现手机投屏至电脑的实用利器

    、Debian 客户端常规安装 目前 Macast 已支持 Win 、Mac、De­bian 等终端设备,可直接下载打包好的二进制文件运行即可 –> GITHUB | GITEE Linux 用户推荐下载测试版...在系统路径中,python >= 3.6 pip install git+https://github.com/xfangfang/Macast.git@dev # 命令行运行 macast-cli # 或显示状态栏菜单...普通用户 打开应用后,菜单栏 \ 状态栏 \ 任务栏 会出现一个图标,这时你的设备就可以接收来自同一局域网的DLNA投放了。...具体端口号见应用菜单设置的第一项,如果没有则为默认的1068 无法搜索到Macast——路由器问题 路由器需要开启UPnP,关闭ap隔离,确认固件正常(部分openwrt有可能有问题) 无法搜索到Macast...——手机软件有问题 可以重启软件或更换软件尝试,或向其他投屏接收端电视测试 尝试在搜索页面等待久一点(最多1分钟如果搜不到那应该就是别的问题了) 如操作系统为IOS,注意要开启软件的本地网络发现权限 无法搜索到

    3.9K10

    #安卓应用推荐#PingTools – 非常实用的全能网络工具

    PingTools是一款集成多款网络工具的 Android 应用,拥有包括 Ping, Traceroute, Whois, Network Scanner, Wi-Fi scanner 在内的多项网络工具...在此之前,一直使用由 HE.net 推出的一款网络工具应用 he.net – Network Tools,两者在界面布局、功能上面都有不少相似之处,相比较起来,更喜欢带有中文界面的 PingTools。...PingTools 的功能目前有: 网络监视器 本地网络 Ping GeoPing Traceroute iPerf 端口扫描 UPnP 扫描 Bonjour 浏览器 Wi-Fi 扫描器 子网扫描器 Whois...信息 DNS 反查 网络唤醒 IP 计算器 并且还能收藏主机与网络,临时去广告(支持去广告几天时间,完全去除需要内购),还能进行声音提醒,包括进度蜂鸣器、错误蜂鸣器、超时蜂鸣器。

    2K30

    网络邻居发现协议大比拼,WindowsLinuxMac系统局域网服务发现协议之-八大金刚

    开发的硬件设备无法在常见系统的网络邻居正确的现实出来,实在是很丧气的事情. 那么,就系统来看看局域网服务发现协议在不同系统上的支持及表现....-抓包 此协议和UPnP极其相似,都是基于SSDP协议衍生的XML表达的,如果不支持此协议,则无法在Windows10 的网络邻居里面显示为PC,无法直接点击访问共享....支持此协议后,Windows10的网络邻居里面会在计算机类型的里面显示设备....此协议在Windows系列里面基本都能支持,会在网络邻居里面显示出设备的信息....AFP-在新MAC版本上的展示 使用配置好的服务文件,MAC可以正常显示设备 PDNAS-MACOS-NETWORK-NEIGHBOR 在调试过程中,还看到了网络邻居显示为PC的图标,有知道显示为这个图标的条件的小伙伴吗

    3.6K00

    UPnP曝Filet-O-Firewall漏洞,数百万家庭路由器处于攻击风险之中

    FreeBuf 百科:UPnP UPnP 是各种各样的智能设备、无线设备和个人电脑等实现遍布全球的对等网络连接(P2P)的结构。UPnP 是一种分布式的,开放的网络架构。UPnP 是独立的媒介。...安全标准采用的缺乏可能使得目前市面上的众多设备暴露在攻击风险之中,因为它会导致攻击者通过访问私人网络来猜测设备的UPnP控制URL。...研究员Grant Harrelson解释说,在不到20秒内就能发起这种攻击,并且任何运行了UPnP服务的家庭路由器都处于这种攻击风险之中。...Harrelson在一篇博文中陈述道: 通过利用Filet-O-Firewall漏洞,攻击者能够将防火墙内的任何设备直接暴露在互联网上。...在2014年10月份,Akamai公司的研究人员就发布了一份关于“利用世界范围内脆弱的UPnP设备进行反射和放大DDoS攻击”的报告。

    1.2K100

    保护您的IoT设备安全的5种方法

    在你开始使用物联网设备之前,使用双重身份认证、设备更新和禁用通用即插即用功能(UPnP )等措施来保护你的物联网设备免受黑客攻击。...这是保护IoT设备安全的五种方法: 1)更改路由器的默认设置 2)使用强密码 3)定期更新设备 4)启用双重身份验证 5)禁用UPnP功能 1.更改路由器的默认设置 首先,请更改路由器的出厂默认名称和密码...5)不要保留所有密码的电子记录(如果被黑客窃取,则所有帐户都会被盗!) 如果您需要跟踪各种密码,请使用经过验证的密码管理器。...5.禁用UPnP功能 大多数物联网设备具有UPnP或通用即插即用功能,该功能允许多个设备连接。例如,您的Alexa可以与智能灯配对以通过语音命令打开和关闭。尽管这样方便,但也带来了一些安全风险。...如果黑客发现了一个设备,他们将能够更轻松地找到连接的另一台设备。而且,由于所有设备都已连接,网络罪犯可以轻松入侵整个系统。幸运的是,大多数设备都允许您通过访问其设置来禁用UPnP。

    75220

    简析OpenHarmony软总线能力

    这个文件夹内。...(即同交换机,同 WiFi 路由或者近场通信范围内)组网前需要有设备认证过程(绑定)架构简析根据目录结构和内部文件及编译框架总结架构如下:SDK:为其他业务提供软总线的能力接口,如发现设备,发布服务,设备连接...工具,可以查看本地的设备信息和所有发现的设备信息;Core:软总线的核心实现部分,提供 softbus_server 库,实现 system ability 框架提供系统能力;discovery:提供对网络设备和蓝牙设备的发布...bus_center:提供核心的 LNN 本地网络服务接口,包括网络服务发现,连接,服务发布等核心能力,以及设备管理能力。...distributedscreen:分布式屏幕是一种屏幕虚拟化能力,支持用户指定组网认证过的其他 OpenHarmony 设备的屏幕作为 Display 的显示区域。

    25320

    【报告系列解读四】绿盟科技发现两类恶意端口映射家族

    对于报告的四个章节我们分别做了解读,本文是第四篇。 UPnP是一种用于 PC 机和智能设备(或仪器)的常见对等网络连接的体系结构。...全球有约280万台物联网设备开放了UPnP SSDP服务(1900端口),存在被利用进行DDoS攻击的风险,其中有38.6%的设备同时还开放了UPnP SOAP服务,在这些开放SOAP服务的设备中,69.8%...我们发现两类添加恶意端口映射的家族IntraScan和NodeDoS。 IntraScan试图将所有的内网端口都暴露在互联网上,全球有约9千台设备受到感染。...推动设备中UPnP功能的安全评估,如设备不满足相关要求,禁止设备上市等。 作为用户: 如无需要,关闭路由器的UPnP功能。 借助工具,自查端口映射表,发现异常条目,及时清除。...及时升级路由器等包含UPnP功能的设备的固件。 点击阅读原文,即可下载报告完整版,里面有我们对于UPnP的更多分析。

    85220

    gb28181协议详解_GB28181收费吗

    M-SEARCH * HTTP/1.1" "HOST: 239.255.255.250:1900" "MAN: \"ssdp:discover\"" "MX: 5" "ST: ssdp:all"; 这代表了搜索所有设备...这样,就会搜索到所有信息,当然了,我们可以使用过滤,只搜索部分协议,比如就是摄像头,其他设备忽略。...2、发现谁在发现 除了搜索设备,我们还需要知道谁往我们得服务地址发送了搜索地址得需求,因为我们是一个设备,其他在gb28181 服务中,我们需要知道sip 网守和网关得设备,可能有多个这种设备,我们则需要知道谁正需要发现设备...可以看出有很多设备正在发ssdp协议,这样,找到自己感兴趣得ssdp设备,给他回信息就行。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.7K20

    Headscale搭建P2P内网穿透

    由于网络木桶效应存在, 即使你两侧的网络速度再高也没用, 整体的速度取决于这个链路中最低的一个设备网速而不是你两端的设备....NAT 穿透简单理解如下: 在 A 设备主动向 B 设备发送流量后, 整个链路上的防火墙会短时间打开一个映射规则, 该规则允许 B 设备短暂的从这个路径上反向向 A 设备发送流量....在这种架构下我们的设备其实就组成了一个非标准的网状拓扑: 在这种拓扑下, 两个设备之间的通讯速度已经不在取决于中央服务器, 而是直接取决于两端设备的带宽, 也就是说达到了设备网络带宽峰值....ip_prefixes 配置为默认的 100.64.0.0/10 网段, 如果你有兴趣查询了该地址段, 那么你应该明白它叫 CGNAT; 很不幸的是例如 Aliyun 底层的 apt 源等都在这个范围内..., tailscale 将会卡住, 并打印一个你的服务器访问地址; 浏览器访问该地址后将会得到一条命令: 注意: 浏览器上显示的命令需要在中央控制服务器执行 (Headscale), NAMESAPCE

    6K30

    ssdp协议内容解析视频_固态硬盘的协议

    discover为固定,MX为最长等待时间,ST:查询目标,它的值可以是: upnp:rootdevice 仅搜索网络中的根设备 uuid:device-UUID 查询UUID标识的设备 urn...:schemas-upnp-org:device:device-Type:version 查询device-Type字段指定的设备类型,设备类型和版本由UPNP组织定义。...其中,第三种一般可以用来自定义设备,如:ST: urn:schemas-upnp-org:device:Server:1 在设备接收到查询请求并且查询类型(ST字段值)与此设备匹配时,设备必须向多播地址...UUID 最常用的设备发现就讲完了,不常用的设备通知和设备发现差别不大,主要是: http头不同,设备通知的头为 NOTIFY * HTTP/1.1 无MX,增加: NT 在此消息中,NT头必须为服务的服务类型...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    83320

    在 NAT 网络环境下获得被外网访问的权利

    # 目前,运营商在 IPv4 中使用 NAT(网络地址转换) 技术,让你能够正常上网 简单解释,NAT 就是可以让许多设备共享一个公网 IP 当然,IP 的使用者不仅仅包括你家的设备,可能小区中的很多设备和你家的设备共享一个...Symmetric(对称型) 不同的请求拥有不同的映射(相当于外部主机无法直接与内部主机通信) NAT 类型与运营商 # 一般来说,运营商的分配内网 IP 时的 NAT 设备,默认 NAT 类型为...Symmetric 型的 NAT 设备,可以根据 dst ip dst port src port 查找 nat 表,连接数量比 Full Cone 多得多 因此,越复杂的 NAT 越能用有限的外网地址支持更多的内网设备...UPnP 进行映射 找到 高级设置 - 其他,启用 UPnP 再次进行 NAT 测试,你的结果理应为 Full Cone 使用 Natter 进行映射 # 本部分书写于 Natter v2.1.1 如果你要使用...-p 5421 -t 127.0.0.1 -U -v -m socket -r UPnP 打洞输出示例 需要注意的是,socket, gost 和 socat 都无法保留源 IP,转发所属的应用程序无法获得访客的真实

    38010

    绿盟 2019物联网安全年报

    虽然目前从样本服务器上已经无法下载相关样本,但是该僵尸网络活动情况依然有小规模上升趋势。 该挖矿僵尸网络分析的完整版可参见《用区块链挣钱,黑产也这么想》47。...攻击事件分析 我们对绿盟威胁捕获系统捕获的攻击事件进行了分析,如图 4.9 所示,这里我们将一天内一个独 立 IP 相关的事件看作一次攻击事件,攻击事件的数量我们将以天为单位进行呈现。...在去年的物联网安全年报中我们已经对 UPnP 协议进行了分析,今年我们对数据进行了更新,并加 入了一些新的发现,UPnP 相关基础知识可参见去年的物联网安全年报,本文不再赘述。...观点 6: 全球约 228 万台物联网设备开放了 UPnP SSDP 服务(1900 端口),存在被利用进行 DDoS 攻击的风险,设备总量较去年减少约 22%。...约 39 万台物联网设备暴露的 UPnP 端口映射服务存 在被滥用的可能,可被用于做代理或将内网服务暴露在外网。参考资料绿盟 2019物联网安全年报

    37160
    领券