如何改进ping参数以获得一致的响应vb.net

时间:2013-07-11 00:42:28

标签: vb.net ping

我遇到了网络上某些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。

任何帮助或建议将不胜感激! 感谢

1 个答案:

答案 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)