UPnP端口映射实现过程(一)

网友投稿 300 2022-09-30

UPnP端口映射实现过程(一)

​第一步是发现​控制点再往上搜索感兴趣的设备,而设备向网络中宣告其服务。对于自动端口映射来说就是发现带UPnP功能的路由器。这一过程主要分两步。第一步,使用数据包套接字向239.255.255.250:1900,发送一条多播请求。M-SEARCH * HTTP/1.1         (SSDH协议定义的搜索方法请求)HOST: 239.255.255.250:1900  (保留地址,用于多点传送)MAN:"ssdp:discover"MX:3                        (最长等待时间)ST:UPnP:rootdevice          (搜索目标)第二步,网络中存在UPnP设备的话,为了被找到,设备必须向发送查找的多播通道的源IP和端口发送响应消息,所以你可以从239.255.255.250:1900这个地址接受到响应消息,其中有设备描述URL。HTTP/1.1 200 OKCACHE-CONTROL: max-age=100DATE: Sun, 15 Jan 2006 06:51:02 GMTEXT:LOCATION: TP-LINK Wireless Router WR541G/5, UPnP/1.0ST: upnp:rootdeviceUSN:uuid:upnp-InternetGatewayDevice-192168141678900001::upnp:rootdevice​第二步是描述。​通过URL,下载XML文件,并从中找到有关设备的类型,服务类型,控制URL,时间触发URL等。同样分两步,首先下载描述文件。第二步解析该XML文件​第三步是控制。​通过第二步获得的控制URL,通过向其中发送控制消息来实现某些功能,对于自动端口映射来说是查看,增加,删除等·  增加端口映射。"AddPortMapping" ·"\n"                                           "​ExternalPort​\n"                          "​Protocol​\n"                                      "​InternalPort​n" "​InternalClient​\n"                 "1\n" "​PortMappingDescription​"                         "\n"       "​LeaseDuration​\n"·  删除端口映射 "DeletePortMapping" ·"\n" "​ExternalPort​\n"                          "​Protocol​\n"· 获得端口映射信息 "GetGenericPortMappingEntry"·"​PortMappingIndex​"                 "\n"   "\n" "\n"     "\n" "\n" "1\n"  ""  "\n"            "\n"ExternalPort 外部端口。InternalPort内部端口。这 两者一般就填映射的端口。Protocal 填TCP或UDP。InterClient 一般就是本地IP地址。PortMappingDescription 填写端口映射的描述,比如什么程序建立了这个端口。LeaseDuration 是映射的持续时间,用0表示不永久。PortMappingIndex 是端口映射索引,路由上第几个映射。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中的OpenJDK使用原理
下一篇:开课吧B端产品经理2021山顶冲刺计划
相关文章

 发表评论

暂时没有评论,来抢沙发吧~