在多宿主机器(多个网络接口,因此可能有多个 IP 地址)中,使用 Java/Linux 基础 ping 查找哪个接口实际返回 ping 响应,因为 ping 被发送到所有可用接口。
我想到的一种方法是使用 -I 并将源接口设置为通过一个接口强制 ping,但在 3 个或更多混合 NIC 的情况下,我们可能必须在正确的接口上处理许多 ping 为零。
任何直接/更简单的建议?
在多宿主机器(多个网络接口,因此可能有多个 IP 地址)中,使用 Java/Linux 基础 ping 查找哪个接口实际返回 ping 响应,因为 ping 被发送到所有可用接口。
我想到的一种方法是使用 -I 并将源接口设置为通过一个接口强制 ping,但在 3 个或更多混合 NIC 的情况下,我们可能必须在正确的接口上处理许多 ping 为零。
任何直接/更简单的建议?
如果您要做的只是确定使用哪个接口到达给定目的地(来自https://serverfault.com/questions/188597/how-to-see-on-linux-what-network-interface- and-source-ip-address-is-used-for-ar ),解析以下输出:
ip route get <destination_ip>
那里打印的界面将与您在 ping 时收到 ping 响应的界面相同<destination_ip>
。
这仅适用于 Linux。可能有一个等效的 Windows 命令。我不知道。
对于 Linux 上的脚本,如果在某个接口上收到 ping 请求,您可以应用iptables规则来记录日志。之后或在记录时,您可以处理日志文件以获取 NIC 信息。