下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-作者xxxx-日期xxxxUPNP端口映射全过程【精品文档】UPNP端口映射全过程UPNP的全称是 Universal plug-and-play( 通用即插即用).UPnP 是针对智能家电、无线设备以及各种外观尺寸的个人电脑的普遍对等(peer-to-peer)网络连接而设计的一种架构。它旨在为家庭、小型企业、公共场所中或连接到互联网的ad-hoc 网或未管理网络提供易于使用、灵活且基于标准的连接。(引自这里.) 我们这里用到的自动端口映射只是UPNP的一个小应用。按照UPNP的相关规范,UPNP网络的第步是寻址(获得一个IP地址,在我要解决的问题中这不是一个问题。) 第步是发现,控制点在
2、网上搜索感兴趣的设备,而设备向网络中的控制点宣告其服务。对于自动端口映射来说就是发现带UPNP功能的路由器。发现这个过程主要有两步。第一,使用数据报套接字向50:1900,发送一条多播请求,格式如下 M-SEARCH * HTTP/1.1HOST: 50:1900MAN:ssdp:discoverMX:3ST:UPnP:rootdevice 这个多播请求的含义如下:M-SEARCH SSDP协议定义的搜索请求方法。HOST必须是这个多播地址。MAN的值也必须是ssdp:discover 不可少了双引号。MX的含义是最长等待时间,可以自己设置。
3、ST表示search target 搜索目标。我们在这里用找根设备。另外在编程中我们要在每一行后面加上rn 表示换行。(详见源码 UPNPNAT.discovery(). 第二步,如果你的网络存在一个UPNP设备的话,为了被找到,设备必须向发送查找请求的多播通道的源 IP 地址与端口发送响应信息。所以你可以从50:1900这个地址接收到响应消息。类似下面的消息。 HTTP/1.1 200 OKCACHE-CONTROL: max-age=100DATE: Sun, 15 Jan 2006 06:51:02 GMTEXT:LOCATION: http:/192.168.
4、14.1:1900/igd.xmlSERVER: TP-LINK Wireless Router WR541G/5, UPnP/1.0ST: upnp:rootdeviceUSN:uuid:upnp-Int/1.1 Host: host:port 的信息(第二行下要一个空行),并通过刚才的TCP 套接字,发送到路由器。(sprintf ,send 函数). 4.接收数据,我使用flag为 MSG_WAITALL的recv函数,函数一直阻塞直到数据全部读完。 数据最终保存在std:string description_info中。 我想通过浏览器下载这个文件的过程是类似的吧。 然后,解析这个XM
5、L文件。(请看源码 中UPNPNAT: parser_description()函数) 我们找到root的deviceType是urn:schemas-upnp-org:device:InternetGatewayDevice:1的device childNode ,获得这个device的deviceList,记为A。 找到A的deviceType是urn:schemas-upnp-org:device:WANDevice:1的device childNode ,获得这个device的deviceList,记为B。 找到B的deviceType是urn:schemas-upnp-org:dev
6、ice:WANConnectionDevice:1的device childNode ,获得这个device的serviceList,记为C。 找到C的serviceType是urn:schemas-upnp-org:service:WANIPConnection:1 或urn:schemas-upnp-org:service:WANPPPConnection:1 的servicechildNode ,记为D. 获得D的controlUrl保存在std:string control_url中。 但是这里获得control_url一般为相对URL,所以要从root下面,找到URLBase的值,(
7、如果是空,则用describe_url的htpp:/xxx.xxx.xxx.xxx:xxxx部分代替.) 最后在相对的control_url前加上URLBasr 获得完整的control_url. 至此,第二步“获得控制URL”完成。 第步是控制。通过第步获得的控制URL,通过向其发送控制消息(同样用XML描述)来实现某些功能。对于自动端口映射来说就是查看、增加、删除等。在这里我先把各种控制信息的格式说明一下。(下面的rn都是表示换行,我输入不了反斜杠。) 增加端口映射。 AddPortMapping rn ExternalPortrn rotocolrn InternalPortnInter
8、nalClientrn 1rnortMappingDescription rn LeaseDurationrn 删除端口映射DeletePortMapping rn ExternalPortrn rotocolrn 获得端口映射信息GetGenericPortMappingEntry ortMappingIndexrn rn rn rn rn 1rn rn rn 其中斜体部分需要在编程是填入的。ExternalPort 外部端口。InternalPort内部端口。这 两者一般就填映射的端口。Protocal 填TCP或UDP。InterClient 一般就是本地IP地址。PortMapping
9、Description 填写端口映射的描述,比如什么程序建立了这个端口。LeaseDuration 是映射的持续时间,用0表示不永久。PortMappingIndex 是端口映射索引,路由上第几个映射。 我们再来看下面这个XML文档结构。 rn rn rn rn actionParamsrn rn rn 我们在actionName 处填入AddPortMapping DeletePortMapping GetGenericPortMappingEntry。serviceType 处填入设备的服务类型。urn:schemas-upnp-org:service:WANIPConnection:1或urn:schemas-upnp-org:service:WANPPPConnection:1。actionParams 填入上面的各种控制信息。 最后在前面加上HTTP头。 POST path HTTP/1.1rn HOST: host:portrn SOAPACTION:serviceType#actionNamern CONTENT-TYPE: text/xml ; charset=utf-8rn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 151-2026高压直流系统、静止无功补偿装置和柔性交流输电系统用换流器及其阀厅的防火措施
- 护理伦理困境与应对
- 湖南省常德市重点达标名校2026届初三下学期期末质量抽测数学试题试卷含解析
- 山东省新泰市西部联盟达标名校2025-2026学年初三下学期自测卷(一)数学试题含解析
- 2026年山东省商河县重点达标名校初三阶段性测试(二模)物理试题文试题含解析
- 福建省龙岩院附属中学2026届初三下质量检测试题(5月)物理试题含解析
- 2026年陕西省安康市汉滨初三教学质量检测试题(一模)物理试题试卷含解析
- 黑龙江省重点中学2026届初三周考数学试题四含解析
- 湖北省孝感市安陆市重点中学2026届初三第二次诊断性考试物理试题含解析
- 疼痛护理的持续质量改进:方法与案例
- 2026江苏南京市雨花台区征收拆迁安置办公室招聘编外人员3人笔试参考题库及答案解析
- 乐山市市中区2026年上半年公开招聘城市社区专职网格员(禁毒社工)(24人)笔试备考题库及答案解析
- 内部财务交叉检查制度
- 柔性传感器介绍
- 抖音直播营销案例分析
- 2025青岛国企社会招聘笔试题及答案解析
- 7s管理制度标准规范
- 2026年金融监管机构面试问题集含答案
- 血站安全教育培训课件
- 厂房拆除施工验收标准
- 农商行考试题及答案
评论
0/150
提交评论