如何使用nodejs获取连接到另一个局域网的所有设备的ip和mac地址?

Posted

技术标签:

【中文标题】如何使用nodejs获取连接到另一个局域网的所有设备的ip和mac地址?【英文标题】:How to fetch ip and mac addresses of all the devices connected to another LAN using nodejs? 【发布时间】:2020-10-28 16:54:12 【问题描述】:

如何使用 nodejs 或任何 powershell 脚本获取连接到同一组织中不同 LAN 的所有设备的 ip 和 mac 地址?

【问题讨论】:

【参考方案1】:

在这里你可以使用child_process找到

类似的东西。

const  exec  = require("child_process");

function os_func() 
    this.execCommand = function(cmd, callback) 
        exec(cmd, (error, stdout, stderr) => 
            if (error) 
                console.error(`exec error: $error`);
                return;
            

            callback(stdout);
        );
    


var os = new os_func();
os.execCommand('arp -a', function (returnvalue) 
    console.log(returnvalue)
);

或者你可以使用arp-scan 安装 sudo apt-get install arp-scan

只需更改命令sudo arp-scan -l

这将为您提供所有信息

【讨论】:

嗨 Mayank,感谢您的回答,但在执行此代码后,我能够获取连接到我的 LAN 的 ip,是否可以获取连接到另一个 LAN 的 ip 地址(设备有不同的默认网关)? 如何在windows中安装arp-scan包?在 Debian GNU/Linux 操作系统中,我们可以使用 sudo apt-get install arp-scan 安装 arp-scan,那么我们如何在 Windows 中安装它呢?......我尝试安装“npm i arpscan new”包和执行此代码但收到错误“exec 不是函数” 您可以在窗口中签入。 arp-scan 将有其他选择,您只需更改 cmd。代码将返回一切。【参考方案2】:

您可以在任何 Windows 机器上运行此 PowerShell 脚本。将您的主机名放入主机名文本中。只要您能 ping 通您正在运行脚本的主机名。


$hostname = get-content -path "C:\temp\hostname.txt"

Foreach ($computer in $hostname) 

   $ping =  Test-Connection -Name $computer -count 2 -Quiet 

   If ($ping -eq $true) 

    $prop = Get-Ciminstance -ClassName Win32_NetorkAdapterConfiguration -ComputerName $computer | select IPAddress, MacAddress, PSComputerName
    Write-Host $prop

   


【讨论】:

您好,您绝对可以为自己的答案编写解决方案,错误您可以将其作为问题发布,然后将您的解决方案也放入其中。这里还有一篇关于如何格式化代码的帖子meta.***.com/questions/251361/…

以上是关于如何使用nodejs获取连接到另一个局域网的所有设备的ip和mac地址?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java 获取连接在同一网络(子网)中的 IP 列表

如何以正确的方式将 PostgreSQL 连接到 NodeJS? [复制]

从另一台计算机连接到 localhost:3000 | expressjs,nodejs [重复]

如何将Markdown连接到另一个Markdown的锚点?

外网如何连接到内网

如何使用 PhpStorm / WebStorm 连接到远程 nodejs 调试会话?