路由器之UPnP协议

路由器之UPnP协议

2023年7月15日发(作者:)

路由器之UPnP协议前⾔通⽤即插即⽤(英语:Universal Plug and Play,简称UPnP)是由“通⽤即插即⽤论坛”(UPnP™ Forum)推⼴的⼀套⽹络协议。该协议的⽬标是使家庭⽹络(数据共享、通信和娱乐)和公司⽹络中的各种设备能够相互⽆缝连接,并简化相关⽹络的实现。UPnP通过定义和发布基于开放、因特⽹通讯⽹协议标准的UPnP设备控制协议来实现这⼀⽬标。————百度百科实例⽬前市⾯上⼤部分路由器都⽀持UPnP协议,那么我们在开发关于路由器的项⽬时,都会去获取路由器的⼀些相关信息,这时候UPnP协议就派上⽤场了。关于UPnP的原理解析和介绍,⽹络上的⽂章太多了,这⾥就不再赘述。直接上⼲货1.使⽤udp多播向239.255.255.250:1900发送⼀条ssdp搜索报⽂ M-SEARCH * HTTP/1.1rnHOST: 239.255.255.250:1900rnMAN:"ssdp:discover"rnMX:5rnST: upnp:rootdevicern2.监听239.255.255.250:1900,如果⽹络存在⼀个UPnP设备的话,设备必须发送响应信息3.解析响应消息,获得LOCATION的值,会得到⼀个xml的地址,即根设备(路由器)的描述信息地址代码⽰例node const socket = Socket('udp4'); ('error', (err) => { (); }); (1900, () => { ticastTTL(128); bership('239.255.255.250'); ticastLoopback(true); const msg = toByteArray('M-SEARCH * HTTP/1.1rnHOST: 239.255.255.250:1900rnMAN:"ssdp:discover"rnMX:5rnST: upnp:rootdevicern'); (msg, 0, , 1900, '239.255.255.250', function (error, bytes) { }); }); ('message', function(data, rinfo) { (); var str = (null, new Uint8Array(data)); const ClearBr = (key) => {

key = e(//g,"");

key = e(/[rn]/g, "");

return key;

}

const xmlAddress = ClearBr(str).match(/LOCATION: (S*).xml/)[1] + ".xml"; fetch(xmlAddress).then(res => { return (); }).then(res => { (res); const modelName = (/(S*)/); //路由器型号 }); }); function toByteArray (obj){ var uint = new Uint8Array(); for (var i = 0, l = ; i < l; i++){ uint[i] = deAt(i); } return new Uint8Array(uint); }

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689407816a243173.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信