我遇到了网络上某些ip的响应不一致的问题。基本上我每次ping它都会随机获得成功或失败但是如果我从windows命令行ping它每次都成功...我用来ping的代码如下:
Dim myping As Ping = New Ping
Dim pingreply As PingReply
Dim host As String = "x.x.x.x"
Dim Timeout = 1000
Dim PacketSize = 32
Dim data As String = ""
Dim i As Integer
For i = 1 To PacketSize
data = String.Concat(data, "a")
Next
Dim buffer() As Byte = Encoding.ASCII.GetBytes(data)
Try
pingreply = myping.Send(host, Timeout, buffer)
If pingreply.Status = IPStatus.Success Then
MsgBox("Success")
Else
MsgBox("Failure")
End If
Catch ex As Exception
End Try
知道我通过VPN访问网络可能也有用,但这并不能解释命令行ping成功的原因。
有什么方法可以调整参数以获得一致的响应?我想避免显着减慢ping时间,因为有许多ip要ping。
任何帮助或建议将不胜感激! 感谢
答案 0 :(得分:0)
Bewere the Windows'ping.exe
给它一个5秒的超时,所以是的,如果延迟太高,它可能会超过你的失败,尽管可能不是这样。此外,您正在省略可能携带有关ping数据包行为的重要信息的PingOptions
参数。
再试一次:
Dim options as PingOptions = new PingOptions
options.DontFragment = true
(...)
pingreply = myping.Send(host, Timeout, buffer, options)