Linux下upnp的安装与使用

19 篇文章 0 订阅
14 篇文章 0 订阅
1、upnp介绍:

通用即插即用(英语Universal Plug and Play,简称UPnP)是由“通用即插即用论坛”(UPnP™ Forum)推广的一套网络协议。该协议的目标是使家庭网络(数据共享、通信和娱乐)和公司网络中的各种设备能够相互无缝连接,并简化相关网络的实现。UPnP通过定义和发布基于开放、因特网通讯网协议标准的UPnP设备控制协议来实现这一目标。

UPnP这个概念是从即插即用(Plug-and-play)派生而来的,即插即用是一种热拔插技术。

UPnP体系允许 PC 间的点对点连接、网际互连和无线设备。它是一种基于TCP/IPUDPHTTP的分布式、开放体系。

UPnP使得任意两个设备能在LAN控制设备的管理下相互通信。其特性包括:

  • 传输介质和设备独立。UPnP 技术可以应用在许多媒体上,包括电话线电线电力线通信PLC)、以太网红外通信技术(IrDA)、无线电Wi-Fi蓝牙)和Firewire(1394)。无需任务设备驱动;而是采用共同的协议。
  • 用户界面(UI)控制。UPnP 技术使得设备厂商可以通过网页浏览器来控制设备并进行交互。
  • 操作系统和程序语言独立。任何操作系统和程序语言均可以用于构建 UPnP产品。UPnP 并没有设定或限制运行于控制设备上的应用程序 API;OS厂商可以创建满 足他们客户需求的 API。UPnP使得厂商可以像开发常规应用程序一样来控制设备 UI 和交互。
  • 基于因特网技术。UPnP 构建于 IP, TCP, UDP, HTTP,和 XML 等许多协议之上。
  • 编程控制。UPnP 体系同时支持常规应用程序编程控制。
  • 扩展性。每个 UPnP 设备都可以有构建于基本体系之上、与具体设备相关的服务。

UPnP 支持零配置,"看不见的网络" 和自动检测;任何设备能自动加入一个网络, 获取一个 IP 地址,宣布自己的名字,根据请求检查自身功能以及检测出其它设备 和它们的功能。DHCP 和 DNS 服务是可选的,并只有它们在网络上存在的时候才会 使用。设备可以自动离开网络而不会遗留下任何不需要的状态信息。

UPnP 的基础是 IP 地址解析。每一个设备都应当有一个 DHCP 客户端并在连入网 络的时候自动搜索 DHCP 服务。如果没有找到 DHCP 服务,也就是说网络是缺乏管 理状态,那么设备必须给自己设定一个地址。如果在和 DHCP 服务器交互的过程中, 设备获得了一个域名(比如通过 DNS 服务器或者 DNS 传递),那么它应当在接下 来的网络操作中使用这个域名;否则,设备应当使用它的 IP 地址。

2、upnp的SDK下载:

UPnP SDK for Linux: http://sourceforge.net/projects/upnp/
LinuxIGD: http://linux-igd.sourceforge.net/

3、编译安装:

注意不要下载libupnp-1.3.1.tar.gz和upnpsdk-1.0.4.tar.gz

#tar xjvf libupnp-1.3.1.tar.gz

#cd libupnp-1.3.1

#./configure

#make 

#make install

#tar xzvf upnpsdk-1.0.4.tar.gz

#cd upnpsdk-1.0.4

#make

#make install

#tar xzvf linuxigd-1.0.tar.gz

#cd linuxigd-1.0

#make 

#make install

4、配置upnp服务:
1). 增加广播路由
# route add -net 239.0.0.0 netmask 255.0.0.0 eth0

2). 为iptables建议一个软链接
# cd /usr/sbin
# ln -s /sbin/iptables ./

3). 启动UPnP

#upnpd ppp0 eth0

upnpd: error while loading shared libraries: libupnp.so.2: cannot open shared object file: No such file or directory

#ln -s /usr/lib/libupnp.so /usr/lib/libupnp.so.2

upnpd: error while loading shared libraries: libixml.so.2: cannot open shared object file: No such file or directory

[root@localhost linuxigd-1.0]# ln -s /usr/local/lib/libixml.so.2 /usr/lib/libixml.so.2

/usr/sbin/upnpd: error while loading shared libraries: libthreadutil.so.2: cannot open shared object file: No such file or directory

[root@localhost linuxigd-1.0]# ln -s  /usr/local/lib/libthreadutil.so.6 /usr/lib/libthreadutil.so.2

或者直接:

#export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

然后执行上述命令

5、诊断upnp运行状态,测试

#tail /var/log/message

#tail /var/log/debug -f

或者在windows下使用upnp Inspector工具便可看到列表。


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
DLNA(Digital Living Network Alliance)是一个用于家庭网络内多媒体设备互联互通的标准,它可以让你的音频、视频和图片在不同设备之间自由传输和共享。在 Linux 系统中,可以使用 upmpdcli 这个工具来实现 DLNA 功能。 upmpdcli 是一款基于 UPnP(Universal Plug and Play)协议的 DLNA 控制点,它可以将 Linux 系统中的音频文件推送到支持 DLNA 的设备上。同时,upmpdcli 还支持自动识别当前音频格式,并且可以进行转码,以确保音频文件的兼容性。 安装 upmpdcli: 在 Debian/Ubuntu 系统中,可以使用以下命令安装 upmpdcli: ``` sudo apt-get install upmpdcli ``` 在 Fedora/CentOS 系统中,可以使用以下命令安装 upmpdcli: ``` sudo dnf install upmpdcli ``` 使用 upmpdcli: 启动 upmpdcli: ``` upmpdcli ``` upmpdcli 默认会扫描当前网络中的 DLNA 设备,并将它们列出来。你可以使用 upmpdcli 的命令行界面来控制 DLNA 设备。 在 upmpdcli 中,你可以使用 `ls` 命令列出当前目录下的文件,使用 `cd` 命令切换目录,使用 `play` 命令播放音频文件。 例如,要播放目录 `/home/user/Music` 下的文件 `song.mp3`,可以执行以下命令: ``` cd /home/user/Music play song.mp3 ``` upmpdcli 会自动识别文件的格式,并将其转码为支持 DLNA 的格式。然后将音频文件推送到支持 DLNA 的设备上。 总之,upmpdcli 是一款非常方便实用的 DLNA 控制点,它可以让你在 Linux 系统中轻松地实现 DLNA 功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值