简而言之,我正在寻找的是一种变体ping 10.0.0.24
,在此示例网络中,只有当笔记本电脑处于绿色位置时才会起作用。如果将同一台笔记本电脑移至蓝色或红色位置,则同一命令应该会失败。
到目前为止,我只想出了两个在红色位置失败的命令。它们在蓝色位置仍然成功。
C:\> ping -i 1 10.0.0.24 && echo SUCCESS || echo FAIL
C:\> ping -r 10.0.0.24 | find "Route: 10.0.0.24" && echo SUCCESS || echo FAIL
我知道你们中有些人会质疑我为什么要这么做。我的回答是:
我使用 Acronis 将笔记本电脑的备份保存到 NAS。我的笔记本电脑可能会在网络中移动。因此,我将其用作备份选项中的预命令,以防止它在流量要经过任何交换机或路由器时运行。
话虽如此,我当然愿意接受实现这一目标的其他想法,但不能作为这个问题的答案。我仍然想找到一个只在绿色位置有效的命令。
答案1
由于交换机对于网络堆栈是不可见的,因此如果不改变网络,就没有简单/通用的方法来实现这一点。
根据您的工作量/灵活性/网络要求/网络级别,考虑购买一个便宜的路由器,然后将其插入绿色位置和交换机之间 - 然后查看计算机的 IP 地址以确定其位置。如果 NAS 需要直接查看设备才能工作,这可能需要调整/无法正常工作 - 但这可能是最容易克服的障碍。
它不太可能运行良好,但根据已部署的内容,您应该能够从网络中的不同点确定 NAS 的不同 ping 特性(例如延迟),并使用它来确定位置。
根据最靠近绿色端口的第三层交换机的功能,您可以制定一条规则来防止它访问其他东西,然后 ping 一下并依赖故障(或者让它阻止对 NAS 的访问 - 但我预计后者是不可取的,因为它会使 NAS 无法访问网络的某些部分。