C# - 禁用ICMP后使用Ping服务器

3

我正在尝试使用PingReply类频繁地ping一系列服务器。大多数情况下这是没有问题的,但有时会出现ping失败的情况。我猜测这与远程服务器禁用了ICMP有关。即使ICMP被禁用,是否有办法从服务器获取到ping的结果呢?


3
如果响应服务器禁用了ICMP ECHO,Ping命令如何工作? - Gabe
我刚刚测试了几次,无法复制命令行中的问题。可能我测试的那个实例不是ICMP问题。但其余部分必须是,因为PingReply类和ping命令都没有返回任何内容。我更新了问题。 - user
在服务器不响应ping的情况下,“准确的ping”是什么意思? - Gabe
我并没有明确表示任何意思。我只是想表达的是,希望能够得到与PingReply一样“准确”的结果。 - user
我只是想确定直接访问IP的服务器是否在线,并获取往返时间。 - user
显示剩余2条评论
2个回答

2
如果远程服务器不响应ICMP ECHO请求,则Ping命令将无法工作。很可能是您发送的数据包与Ping发送的数据包之间存在差异。您可以使用类似于网络监视器或Wireshark的工具来查看数据包并进行比较。
很有可能您正在发送一个TTL较低的数据包(或者缓冲区太大)。我建议首先尝试增加PingOptions.Ttl

@Nate:请更新你的问题,告诉我们“准确的ping”是什么意思。 - Gabe

0

ping 命令也使用 ICMP。如果您知道该计算机上将可靠打开的端口,您可以始终建立 telnet 连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接