包括本论坛在内的许多论坛上都有关于此问题的帖子,其中一些涉及使用第三方应用程序,还有一些涉及在 Linux 中使用 arp-scan 或 arpping 工具。
我正在尝试了解如何构建此类应用程序,所以您知道我不能使用第三方应用程序。
我的问题是如何获取本地网络中所有活动设备的 IP 地址,IP 地址由路由器 DHCP 分配,我不想登录路由器来获取它借出的 IP 地址。
在 cmd 中使用 for 循环通过 ping 命令扫描所有设备将花费大量时间,
现在有趣的是,
arp -a
只向我的机器与之通信的所有设备提供 IP 地址,同时清除 arp 表,使用 arp -d 没有帮助,
但net view /all
给了我网络中所有机器的名称,我所说的名称是指计算机名称。
那么,在 Windows 平台上是否有任何命令可以与 netview 一起执行以获取 ip 地址,可以在 powershell 中执行某些操作吗?我不想使用任何类型的第三方应用程序,它不会帮助我理解背后的逻辑。
答案1
据我所知,让 Windows 7 广播,然后它将获取 ARP 列表中的所有 IP 到 MAC。
尝试这个:
1.ping 你的广播 IP 地址.
2.运行ARP-A
广播IP取决于您的IP地址,如果您的IP是xxxx/24,则广播IP地址是xxx255。
现在你可以看到本地网络中的所有IP。
答案2
解决方案是一个脚本/程序,它可以一次 ping 网络内的所有网络可能性。例如,如果默认网关是 192.168.100.1,我们必须以编程方式 ping 整个网络中的每个地址。我无法访问该程序,但算法可能是:
使用 ipconfig 找出默认网关(路由器 IP)和子网掩码。假设默认网关是 192.168.100.1,掩码是 255.255.255.0,或 192.168.100.1/24。
使用脚本从 192.168.100.0 一直 ping 到 192.168.100.254
记录每个事件并查看结果。
我查找了这个问题,并尝试了上面提到的所有解决方案以及其他解决方案,但都没有用。然后我突然想到 - powershell 或 cmd 脚本文件可以做到这一点。
当然,更简单的方法是让路由器访问,以便可以轻松识别所有连接的设备/节点。