Problem mit my.computer.network.ping

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von hm_krause.

    Problem mit my.computer.network.ping

    Hallo
    Ich habe ein Problem mit my.computer.network.ping. Wenn ich eine bestimmte Adresse anpinge die wie bei mir z.b. in einem Privaten Netzwerk ist und nur über VPN zu erreichen ist, bekomme ich immer eine 1 zurückt auch wenn der VPN Tunnel überhaupt nicht aufgebaut ist und die Adresse somit auch nicht zu erreichen ist. Gebe ich aber z.b. eine ungültige Adresse ein z.b. 4444.225.4.1 dann kommt auch 0 zurück. Aber wenn es aber eine gültige Adresse ist kommt immer 1 zurück. Mache ich den Ping per Konsole kommen die richtigen Werte. Also nicht zu erreichen 0 zu erreichen 1.
    Nachfolgend mein Code:

    VB.NET-Quellcode

    1. Function Check_VPN()
    2. Try
    3. My.Computer.Network.Ping("44.225.4.1")
    4. Return 1
    5. Catch ex As Exception
    6. Return 0
    7. End Try
    8. End Function


    Mache ich aber das so:

    VB.NET-Quellcode

    1. Function Check_VPN()
    2. Try
    3. My.Computer.Network.Ping("44444.225.4.1")
    4. Return 1
    5. Catch ex As Exception
    6. Return 0
    7. End Try
    8. End Function

    Kommt auch 0 als Ergebnis. Um Spekulationen auszuschliessen kann ich zu 100% sagen das die Adresse im obrigen Beispiel auch wirklich nicht zu erreichen ist da die VPN Verbindung worüber sie nur zu erreichen wäre nicht besteht. Per Konsole wird das ja auch richtig angezeigt!!

    Ich hoffe es hat jemand einen Lösungsansatz oder es hat schon mal jemand dieses Problem gehabt und kann mir Helfen. Ich würde mich auch mit einer anderen Möglichkeit anfreunden die sicher auswerten kann ob die bestimtme IP zu erreichen ist oder nicht.
    @hm_krause Welchen Rückgabewert liefert My.Computer.Network.Ping?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ?( Ich verstehe die Frage nicht !. My.computer.network.ping gibt in der Function entweder 1 zurück wenn erreichbar oder 0 wenn nicht erreichbar oder ? Bei mir gibt es aber 1 zurück also erreichbar obwohl die ip nicht erreichbar sein kann .
    @RodFromGermany meint welchen Rückgabewert die Methode My.Computer.Network.Ping zurückgibt. Nicht deine. Diese gibt nämlich einen Boolean (true/false) retour ob es funktioniert hat.
    Da du diesen jedoch nicht auswertest gibst du immer 1 retour. In den Exception Block kommt er nur bei einer Exception welche zB auftritt wenn es eine Adresse gar nicht geben kann (wie 4444.123.123.123).
    - Werte das Ergebnis der My.Computer.Network.Ping aus
    - Oder noch besser verwende die Methode aus der Ping Klasse (msdn.microsoft.com/de-de/libra…ation.Ping(v=vs.110).aspx). My. Methoden sind generell nicht so zu empfehlen, da es einfach bessere/effizientere Möglichkeiten vom Framework her gibt.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten