2011-06-08 96 views
2

我試圖ping一系列使用PingReply類的服務器。大多數情況下這很好,但有時候我會失敗。我猜這與在遠程服務器上禁用ICMP有關。即使ICMP被禁用,是否有任何方法可以從服務器獲取ping?C# - 禁用ICMP的Ping服務器

+3

如果在響應服務器上禁用ICMP ECHO,Ping命令如何工作? – Gabe 2011-06-08 00:32:54

+0

我假設他們使用了相同的ICMP回覆。你可以連接sharke命令行ping,看看發生了什麼。 – rerun 2011-06-08 00:34:43

+0

我只測試了幾次,我無法用命令行復制問題。也許我測試的那個實例不是ICMP問題。但其餘的必須是,因爲PingReply類和ping命令都不返回任何內容。我更新了這個問題。 – user 2011-06-08 00:36:09

回答

2

如果遠程服務器不會響應ICMP ECHO請求,它將無法使用Ping命令。賠率是你正在發送的數據包和Ping發送的數據包之間有一些差異。您可以使用網絡監視器或Wireshark來查看數據包並進行比較。

你打算髮送一個TTL較低的數據包(或者可能太大的緩衝區)。我會先嚐試增加PingOptions.Ttl

+0

請參閱最新的問題/評論。 – user 2011-06-08 01:16:08

+0

@Nate:請更新您的問題,告訴我們「準確ping」的含義。 – Gabe 2011-06-08 01:33:43

0

ping命令也使用ICMP。如果您知道該機器上可靠地打開的端口,則可以始終建立telnet連接。

+0

請參閱最新的問題/評論。 – user 2011-06-08 01:16:01