如何在 Linux/Windows 中检查 LAN 和无线连接的 PC 是否位于同一子网中?

如何在 Linux/Windows 中检查 LAN 和无线连接的 PC 是否位于同一子网中?

如果您家中有多个成员,每个人都使用自己的 PC,一些通过无线连接,一些通过 LAN 电缆连接 - 您如何检查所有这些 PC 是否都在同一个子网或广播域中?

请逐步指导如何在 Linux 和 Windows 系统上进行检查?有任何直接的命令行可用吗?

澄清一下:LAN 指的是通过有线 LAN 电缆连接到路由器的 PC。WIFI 指的是无线连接的 PC。

谢谢

答案1

您需要知道每台 PC 的子网掩码和 IPv4 地址。
打开命令/终端提示符。输入:
ipconfig对于 Windows,
ifconfig对于 Linux。
按 ENTER。

查看子网掩码。是否匹配?
:您马上就知道计算机不在同一个网络上。
是的:继续进行以下操作,确定计算机是否位于同一子网。

比较 IP 地址以确定设备是否位于同一子网。

我们将使用最常见的子网掩码 255.255.255.0 作为示例。它告诉我们网络块的大小:

  • 在这四个部分中,如果值为 255,我们将用 0 替换它。
  • 如果该部分中有任何其他数字,我们就从 256 中减去该数字。
  • 在上面的例子中,我们将得到 0.0.0.256 (256 - 0 = 256)。这是由 256 个数字组成的块。

如果子网为 255.255.252.0,我们代入后得到 0.0.4.256。这是 1024 个地址的地址块(4 x 256 = 1024)。

比较两个 IP 地址/子网组合时,子网值为 255 的任何部分的地址都必须匹配对于子网 255.255.255.0,如果它们在同一个子网中,我们希望看到 IP 地址的前三个部分匹配(从左到右读取)。

关键是要匹配子网和 IP 地址。让我们看四个示例: 在此处输入图片描述

答案2

如果您不想做数学运算或担心网络掩码,那么@BaldEagle 回答有一种方法。这种方法更可靠,因为即使您有 2 个具有相同 IP 范围的独立网络(例如,一个办公室有 2 个互联网连接,2 个路由器都设置为默认 192.168.1.1/24 并执行 NAT),它也可以工作。

建立系统 1 的 IP 地址。让系统 1 ping 另一个系统 2,并且在系统 2 上执行此 ping 操作的同时(或之后不久),在终端或命令窗口中输入“arp -an”,如果系统 1 上的 IP 地址出现在条目列表中,则表明它位于同一子网(即使 ping 失败,情况也是如此)。

我在这里假设设备只有 1 条路径可以互相看到。(即,当设备具有以太网和 WiFi 连接时,事情可能会发生故障 - 在这种情况下,您需要知道发送 ping 的接口的 iIP 地址 - 通常是 LAN 地址)。

这里的想法是(对于由系统 1 计算为处于广播域中的系统 - 根据 BaldEagle 的回答,这是在技术层面上完成的)将发送一个广播数据包“谁有 IP 地址 X” - 相应的机器将响应“我,这是我的 MAC 地址”,然后 IP 和系统可以直接通信。ARP 命令显示记住的地址表。

相关内容