通用即插即用(英语:Universal Plug and Play,简称UPnP)是由“通用即插即用论坛”(UPnP™ Forum)推广的一套网络协议。该协议的目标是使家庭网络(数据共享、通信和娱乐)和公司网络中的各种设备能够相互无缝连接,并简化相关网络的实现。UPnP通过定义和发布基于开放、因特网通讯网协议标准的UPnP设备控制协议来实现这一目标。
UPnP这个概念是从即插即用(Plug-and-play)派生而来的,即插即用是一种热拔插技术。
UPnP体系允许 PC 间的点对点连接、网际互连和无线设备。它是一种基于TCP/IP、UDP和HTTP的分布式、开放体系。
UPnP使得任意两个设备能在LAN控制设备的管理下相互通信。其特性包括:
UPnP 支持零配置,"看不见的网络" 和自动检测;任何设备能自动加入一个网络, 获取一个 IP 地址,宣布自己的名字,根据请求检查自身功能以及检测出其它设备 和它们的功能。DHCP 和 DNS 服务是可选的,并只有它们在网络上存在的时候才会 使用。设备可以自动离开网络而不会遗留下任何不需要的状态信息。
UPnP 的基础是 IP 地址解析。每一个设备都应当有一个 DHCP 客户端并在连入网 络的时候自动搜索 DHCP 服务。如果没有找到 DHCP 服务,也就是说网络是缺乏管 理状态,那么设备必须给自己设定一个地址。如果在和 DHCP 服务器交互的过程中, 设备获得了一个域名(比如通过 DNS 服务器或者 DNS 传递),那么它应当在接下 来的网络操作中使用这个域名;否则,设备应当使用它的 IP 地址。
UPnP SDK for Linux: http://sourceforge.net/projects/upnp/
LinuxIGD: http://linux-igd.sourceforge.net/
注意不要下载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
#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
然后执行上述命令
#tail /var/log/message
#tail /var/log/debug -f
或者在windows下使用upnp Inspector工具便可看到列表。