如何在 Windows 中强制“无法访问目标网络”ping 结果
Posted
技术标签:
【中文标题】如何在 Windows 中强制“无法访问目标网络”ping 结果【英文标题】:How can I force a "destination net unreachable" ping result in Windows 【发布时间】:2020-02-08 02:59:11 【问题描述】:我正在开发一个连接到各种 Windows 计算机并运行自动化脚本的程序。
其中一个脚本通过几种方式检查一般 Internet 连接,包括 ping 公共网站和/或 IP。
当 ping 不成功时,错误原因是:
-
请求超时
目标主机无法访问
目标网络不可达
我需要测试此脚本的响应处理程序,为此,我需要强制 ping 响应上述每个原因。请求超时很容易,我只是 ping 任何假 IP 地址或主机名。我可以通过将虚假本地 IP 地址固定在与机器相同的子网上可靠地获得目标主机无法访问的响应。
但是,我找不到产生“目标网络无法访问”响应的方法。我试过用1.2.3.4 example.com
之类的东西编辑机器主机文件,但这只会导致“请求超时”响应。我还尝试按照 arp -s 1.2.3.4 aa-bb-cc-aa-bb-cc
的行添加虚假的 arp 条目,结果相同。
如何配置 Windows 10 机器以一致的方式产生destination net unrechable
ping 响应?
【问题讨论】:
您的路由器需要在其路由表中不有到目标网络的路由。您可能有一个匹配每个目标地址的默认路由 (0.0.0.0/0
)。您需要删除该默认路由并尝试在 Internet 上 ping 一些东西。
@RonMaupin 有没有办法通过桌面配置绕过这个?不幸的是,我无法访问路由器的设置。
这是当网络目的地不在路由表中时生成的。您也许可以从主机中删除默认路由,并尝试在不在主机路由表中的网络上 ping 某些东西,但您确实有搞砸主机的风险。
使用被黑的 ping - 例如,假装 net 10 无法访问。
【参考方案1】:
当您的计算机无法找到到您 ping 的远程 IP 地址的网络地址的路由时,您可能会收到目标网络不可达错误。
创建此错误场景的最佳方法是按照 Ron Maupin 的建议从路由器配置中的路由表中删除默认路由。
另一种方法是在您的计算机上编辑 Windows 10 路由表并以桥接模式连接到直接调制解调器。您可以使用第三方工具轻松完成这项工作。然后尝试 ping 一个没有可用路由的目标地址。它肯定会导致目标网络不可达错误。 https://www.corenetworkz.com/2009/05/destination-net-unreachable-icmp-error.html
【讨论】:
以上是关于如何在 Windows 中强制“无法访问目标网络”ping 结果的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 上使用 Visual C++ 强制加载链接库
如何在 Windows 中以编程方式强制重启/重新加载 Playback 设备?
如何强制 C# .net 应用程序在 Windows 中仅运行一个实例? [复制]