ping - was bedeutet die Fehlermeldung

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    ping - was bedeutet die Fehlermeldung

    Moin!

    ich habe ein einfaches Programm, das einmal die Minute einen Ping absetzt und dann schaut, ob eine Internet-Verbindung besteht. Es geht darum den routerausfall zu dokumentieren.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private _LastOnlineStatus As Integer = 0 ' -1 ... offline / 0 ... kein Status / 1 .... online
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. Dim Sekunden As Integer = 60
    5. Timer1.Interval = 1000 * Sekunden
    6. Timer1.Enabled = True
    7. AddHandler Me.Timer1.Tick, New System.EventHandler(AddressOf Me.timer1_Tick)
    8. End Sub
    9. Private Sub CheckOnline()
    10. Dim Zeitpunkt As String = Now.ToString("yyyy-MM-dd HH:mm:ss")
    11. Dim IsOnlineStatus As Integer = IsOnline()
    12. Select Case IsOnlineStatus
    13. Case -1
    14. If _LastOnlineStatus <> IsOnlineStatus Then TextBox2.AppendText(String.Format("{0} - offline", Zeitpunkt) & Environment.NewLine)
    15. _LastOnlineStatus = -1
    16. Case 0
    17. If _LastOnlineStatus <> IsOnlineStatus Then TextBox2.AppendText(String.Format("{0} - ?????", Zeitpunkt) & Environment.NewLine)
    18. _LastOnlineStatus = 0
    19. Case 1 ' online
    20. If _LastOnlineStatus <> IsOnlineStatus Then TextBox2.AppendText(String.Format("{0} - online", Zeitpunkt) & Environment.NewLine)
    21. _LastOnlineStatus = 1
    22. End Select
    23. TextBox2.ScrollToCaret()
    24. Label1.Text = "Letzter Pingzeitpunkt: " & Zeitpunkt
    25. End Sub
    26. Private Sub timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs)
    27. CheckOnline()
    28. End Sub
    29. Function IsOnline() As Integer
    30. If My.Computer.Network.IsAvailable AndAlso My.Computer.Network.Ping("www.google.de", 1000) = True Then Return 1
    31. Return -1
    32. End Function
    33. Private Sub Button1_Click(sender As Object, e As EventArgs)
    34. CheckOnline()
    35. End Sub
    36. End Class



    Ich habe einmal folgende Fehlermeldung in der Funktion IsOnline bekommen:


    System.Net.NetworkInformation.PingException: Während einer Pinganforderung ist eine Ausnahme aufgetreten. ---> System.Net.Sockets.SocketException: Der angegebene Host ist unbekannt
    bei System.Net.Dns.GetAddrInfo(String name)
    bei System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
    bei System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
    bei System.Net.NetworkInformation.Ping.Send(String hostNameOrAddress, Int32 timeout, Byte[] buffer, PingOptions options)
    --- Ende der internen Ausnahmestapelüberwachung ---
    bei System.Net.NetworkInformation.Ping.Send(String hostNameOrAddress, Int32 timeout, Byte[] buffer, PingOptions options)
    bei System.Net.NetworkInformation.Ping.Send(String hostNameOrAddress, Int32 timeout, Byte[] buffer)
    bei Microsoft.VisualBasic.Devices.Network.Ping(String hostNameOrAddress, Int32 timeout)
    bei InternetPing.Form1.IsOnline() in C:\VSProjects\Privat\InternetPing\InternetPing\Form1.vb:Zeile 40.
    bei InternetPing.Form1.CheckOnline() in C:\VSProjects\Privat\InternetPing\InternetPing\Form1.vb:Zeile 14.
    bei InternetPing.Form1.timer1_Tick(Object sender, EventArgs e) in C:\VSProjects\Privat\InternetPing\InternetPing\Form1.vb:Zeile 37.
    bei System.Windows.Forms.Timer.OnTick(EventArgs e)
    bei System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)



    Ist das wie ein IsOnline=false zu interpretieren oder weißt das auf etwas ganz anderes hin?

    Gruß jan

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @jan99 Ping erwartet eine IP-Adresse: docs.microsoft.com/de-de/dotne…g?view=windowsdesktop-6.0
    Arbeitest Du Option Strict On :?:
    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!
    Nicht ausschließlich: Ping-Überladung mit String
    Ich bekomm bei der Zeile mit den angegebenen Parametern derzeit ein True für den Ping zurück. Netzwerkprobleme?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Meinst Du ob ich Netzwerkprobleme habe?

    Der Rechner hängt direkt am Router und es kann durchaus sein, dass zu dem Zeitpunkt der sich neugestartet hat.

    Es geht bei meinem Tool auch darum den Zeitpunkt der Neustarts zu dokumentieren.

    Jan

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Wieso startet sich der Router neu? Das sollte doch nur nach Update, Stromausfall, manueller Betätigung passieren, dachte ich. :huh:
    Neustart wovon? PC? (W)LAN-Verbindung? Router?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Möglicherweise/warscheinlich ist das kein Router Neustart, du bzw. dein Router bekommt regelmäßig eine neue IP, in der Regel täglich. Wenn das bei mir passiert, habe ich einen kurzen Augenblick kein Internet. Das könnte die Ursache sein.

    Das wäre auch kein Ausfall des Routers, denn der ist intern auch erreichbar wenn die IP gerade gewechselt wird, wäre ja eine Katastrope wenn sowas das interne Netzwerk lamlegen würde. Wenn du einen Routerausfall feststellen willst, kannst du den anpingen und/oder versuchen die Konfigseite runterzuladen, wenn das nicht geht, dann wäre das wohl eher ausfall des Routers.
    Die Meldung ist doch relativ eindeutig?
    Der angegebene Host ist unbekannt und bei System.Net.Dns.GetAddrInfo(String name) ... bedeutet dein Client/konfigurierter DNS Server kann den Hostnamen nicht auflösen.

    jan99 schrieb:

    If My.Computer.Network.IsAvailable AndAlso My.Computer.Network.Ping("www.google.de", 1000) = True Then Return 1
    Pingst du wirklich Google oder steht das stellvertretend für eine andere (interne) Adresse im Firmennetz?
    Musst du da die Domain mit angeben?
    Ping den Rechner mal aus dem CMD-Fenster an.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    Ping den Rechner mal aus dem CMD-Fenster an.
    Rechner werden per IP angepingt.
    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!

    slice schrieb:

    ... bedeutet dein Client/konfigurierter DNS Server kann den Hostnamen nicht auflösen.


    Ich habe mir angewöhnt Fehlermeldungen genauer zu untersuchen wie auch die Umstände wie diese enstehen, weil ich hin und wieder nicht ganz korrekte Fehlermeldungen bekam, kommt immer öfter vor, von FW zu FW Version, hab mal eben einfach den Killswitch aktiviert, also hatte mein Rechner kein Zugriff auf's Internet, ich bekam die gleiche Exception wie der TE, die Fehlermeldung stimmt hier wieder mal nicht ganz, klar der Host ist unbekannt, aber nicht weil der DNS Server ihn nicht kennt, sondern weil der DNS Server nicht erreichbar ist.

    @jan99 Das spricht für meine Theorie mit dem IP-Wechsel.
    @petaod Google ist kein Rechner
    @Takafusa Ich arbeite bei meinem Gerät mit IP, allerdings muss die IP-Adresse fest vorgegeben sein, Altlasten.
    Die Kommunbikation läuft dann über Socket.
    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!

    RodFromGermany schrieb:

    Google ist kein Rechner
    Netzwerktechnisch ist das genauso ein IP Endpoint wie jeder andere Rechner auch.
    Aber du kannst auch den DNS-Namen eines "Rechners" angeben. Auch das funktioniert.
    Es sei denn du hast keinen DNS Server eingetragen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @petaod OK, Netzwerkzeugs ist nicht ganz so das meine.
    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!