在前端开发的过程中,我们经常需要编写一些代码来扫描本地网络中的设备,例如打印机、路由器等。这种扫描设备的功能我们叫做设备发现,这是一个非常常见的场景。而针对设备发现,我们可以使用 npm 包 polo-discover 来解决问题。
polo-discover 的功能
polo-discover 是一个基于 UDP 协议的设备发现工具。它提供了以下的功能:
- 扫描本地网络中所有在线的设备
- 获取设备的 IP 地址和 MAC 地址
- 根据设备的服务和端口来识别设备的类型
安装 polo-discover
我们首先要使用 npm 来安装 polo-discover 包。在终端输入以下命令:
$ npm install polo-discover
使用 polo-discover
安装完成后,我们需要在代码中引入 polo-discover。
const PoloDiscover = require('polo-discover');
扫描设备
使用 polo-discover,我们首先需要获取设备的列表。这可以通过调用 discover()
方法实现。
const discover = new PoloDiscover(); discover.on('up', (host, data) => { console.log(`Device Found: ${JSON.stringify(data)}`); }); discover.discover();
在上述代码中,我们定义了一个新的 PoloDiscover 实例,然后为其注册了 up 事件处理程序。当设备扫描结束后,up 事件就会被触发,并且 up 事件的参数会返回扫描到的设备列表和数据。我们可以通过 JSON.stringify(data)
将扫描到的设备列表和数据打印到控制台。
获取设备 IP 和 MAC 地址
当设备被发现后,我们可以通过调用 host.ip()
获取设备的 IP 地址,如下所示。
discover.on('up', (host, data) => { console.log(`Device Found: ${host.ip()}`); });
同样地,我们也能调用 host.mac()
方法获取设备的 MAC 地址。
discover.on('up', (host, data) => { console.log(`Device Found: ${host.mac()}`); });
识别设备类型
我们还可以根据设备的服务和端口来识别设备的类型。
-- -------------------- ---- ------- ------------------- ------ ----- -- - ------------------- ------ --------------- ------------------- ----- ------------------------------- ---------------- --- ------------------- --------- --------- ------ ----- ---
在上述代码中,我们指定服务和端口,只扫描支持 HTTP 服务和 80 端口的设备,并且只返回一个设备。在 up 事件中,我们可以获取设备类型的 metadata 属性。
结语
上述是关于 npm 包 polo-discover 的使用教程。通过本文,我们了解到了 polo-discover 的功能、安装和使用。使用这个 npm 包可以更加有效地扫描本地网络设备,并且根据设备地址和 MAC 地址,来识别设备的类型。这样就是前端开发中常见的一个技术场景解决方案,有着指导意义和学习价值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cf681e8991b448e6bc0