-1

我的网络上某些 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 时间,因为要 ping 的 IP 很多。

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

4

1 回答 1

0

Bewere Windowsping.exe给它一个 5 秒的超时时间,所以是的,如果延迟太高,它可能会在你失败的地方成功,尽管情况可能并非如此。此外,您正在省略PingOptions可能携带重要信息到 ping 数据包行为的参数。

再试一次:

Dim options as PingOptions = new PingOptions
options.DontFragment = true

(...)

pingreply = myping.Send(host, Timeout, buffer, options)
于 2013-07-11T01:13:21.820 回答