我想实现一个功能,扫描出局域网内的所有设备,获得 ip,mac 地址,设备名称。
我知道 nodejs 可以直接调用系统命令。
但是考虑到,可能编译成跨平台的应用,想调用 node 自身的模块。
或者可不可自己用 js 写一个通过 arp 协议发送的请求?是否已有实现?
|      1vampuke      2019-04-26 15:02:14 +08:00  1 https://www.npmjs.com/package/local-devices 不知道你要的是不是这个 | 
|  |      4Nitroethane      2019-04-26 15:21:01 +08:00 via Android  1 用 nodejs 的话估计得用 node 的 addon 机制来写了吧。或者可以装个 arp-scan 这个命令,这个命令挺靠谱的 | 
|  |      5ysc3839      2019-04-26 15:25:06 +08:00 via Android 可以调用 libpcap 来发。 | 
|  |      8YYSWDD OP @Nitroethane #4 我用 npm 安装了 arp-scan.运行 arpscan -C 的时候报错 { Error: spawn arp-scan ENOENT at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19) at onErrorNT (internal/child_process.js:415:16) at process._tickCallback (internal/process/next_tick.js:63:19) at Function.Module.runMain (internal/modules/cjs/loader.js:757:11) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3) errno: 'ENOENT', code: 'ENOENT', syscall: 'spawn arp-scan', path: 'arp-scan', spawnargs: [ '-l' ] } Error: spawn arp-scan ENOENT | 
|  |      9Nitroethane      2019-04-26 16:09:00 +08:00 @YYSWDD #8 "First you need to install arp-scan if is not already installed." 你不看文档的吗...... | 
|  |      10YYSWDD OP @Nitroethane #9 还要装外部命令,我以为 npm 安装了就行呢。那我打包给别人的时候,别人也要装这个,太麻烦了。 | 
|  |      11Srar      2019-04-26 16:29:01 +08:00 可以, https://www.npmjs.com/package/raw-socket 然后配合 nexe 或者 pkg 打包 | 
|      12julyclyde      2019-04-27 10:14:26 +08:00 你想多了 这种远离底层的语言就不是用来做这么底层的事的 但凡能做出来,都很难是跨平台的 | 
|      13nimrc      2019-04-28 06:56:55 +08:00 via iPhone 写扩展吧 |