Online- & Pingabfrage

12/20/2013 15:13 shxy#1
Guten Tag,

nach 45 Minuten voll mit Erfolgslosem probieren einen Online- & Pingabfrager zu machen brauch ich jetzt Hilfe.
Also, ich wollte gerne das man in einem kleinen VB2010 Fenster sieht, ob der Server gerade Online/Offline ist und wie sein derzeitiger Ping ist.
Ist auch relativ einfach, aber anscheind nur bei Homepages.

Ich habe jetzt ein C&C Code benutzt, sämtliche Homepages eingetragen und es wurde mir immer korrekt angezeigt. Dann hab ich die IP vom Root benutzt, der in mehreren Servern unterteilt ist - sprich von jedem Server die IP genommen und abgefragt.

Jetzt hab ich aber das Problem das bei jedem Server "Online" angezeigt wird obwohl sie runtergefahren wurden. Das gleiche ist auch bei einem ganz normalen Gameserver der sich im Offline-Modus befindet und auch als Online angezeigt wird.

Ich frag mich was nun das Problem ist denn bei Homepages funktioniert es ja schließlich auch..
Ich habe mal das C&C Projekt unten als Dateianhang angehangen. (Nicht von mir)
Man kann ja mal diese IP "85.131.182.100" eintragen und man wird sehen das der Server Online ist obwohl er im Nitrado Panel als Offline angezeigt wird.

Würde mich über Hilfe freuen,
Grüße .sH0Xyy
12/20/2013 16:35 BestBlitzcrank#2
Du willst jetzt wissen ob der Server down oder on ist oder? ^^
(Gameserver kannst du nich anpingen, die reagieren nicht auf pings)

Code:
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Dim Pinging As New Ping
        Dim pingSender As Ping = New Ping()
        Dim reply As PingReply = pingSender.Send("google.de", 100)
        Label1.Text = "Ping: " & reply.RoundtripTime & "/ms"
        If reply.RoundtripTime = 0 Then
            Label2.Text = "Server down!"
        Else
            Label2.Text = "Server On!"
        End If
    End Sub
Auf die schnelle war für mich das die beste Methode. (aber wenn du keine Verbindung hast, wird der Server trotzdem auf down angezeigt obwohl es an dir liegt).
12/20/2013 16:42 tolio#3
ich vermute der wird als online angezeigt weil ne verbindung zur ip aufgebaut werden kann, damit ist er online
Code:
            Dim asad As TcpClient = New TcpClient()
            asad.Connect("85.131.182.100", 80)

wenn du wissen willst ob der gameserver läuft musst du dich informieren auf welches protokoll und port der gameserver hört, dann kannste dahin verbinden und schauen obs geht und in welcher zeit
12/20/2013 18:57 shxy#4
Quote:
Originally Posted by BestBlitzcrank View Post
Du willst jetzt wissen ob der Server down oder on ist oder? ^^
(Gameserver kannst du nich anpingen, die reagieren nicht auf pings)

Auf die schnelle war für mich das die beste Methode. (aber wenn du keine Verbindung hast, wird der Server trotzdem auf down angezeigt obwohl es an dir liegt).
Bei diesem Code bekomm ich 3x die Fehlermeldung das die Begriffe "Ping" & "PingReply" nicht definiert sind.
Wie muss ich da was definieren? Bin noch relativ neu im Umgang mit VB.

Quote:
Originally Posted by tolio View Post
ich vermute der wird als online angezeigt weil ne verbindung zur ip aufgebaut werden kann, damit ist er online
Code:
            Dim asad As TcpClient = New TcpClient()
            asad.Connect("85.131.182.100", 80)

wenn du wissen willst ob der gameserver läuft musst du dich informieren auf welches protokoll und port der gameserver hört, dann kannste dahin verbinden und schauen obs geht und in welcher zeit
Ich habe von jeder einzelnen IP Adresse die Ports.
Ich weiß aber ehrlich gesagt nicht was ich mit deinem Code anfangen kann, habe ihn jetzt eingefügt aber was muss ich noch hinzufügen?
Dachte eigentlich das es einfacher ist, also..

If (Wenn PC IP ADRESSE **** PINGT) = TRUE THEN
Textbox = ONLINE ELSE
IfElse (Wenn PC IP ADRESSE **** PINGT) = FALSE THEN
Textbox = OFFLINE
End

Also ich denke ihr wisst was ich mein, den Code habe ich benutzt (Einen funktionierenden, das war jetzt ein geschriebenes Beispiel, mir ist klar das der ned funzt ;) )aber es ging ja leider nicht. Wurde immer Online angezeigt.
Gibts da nicht eine einfache Methode? Kann ja nicht sein das es so schwer ist :o
12/20/2013 19:08 'Heaven.#5
Zu 1)
Namespace importieren

Zu 2)
So wie tolio gesagt hat, versuch via TCP/UDP auf die IP und den Port des GS zu verbinden.
Falls er es schafft zu verbinden ist der GS logischerweise online, falls nicht nicht...
12/21/2013 15:57 shxy#6
Jo, funktioniert wirklich.
Hatte auch noch ausversehen die Gameserver IP mit der Root IP vertauscht. Jetzt wird mir alles korrekt angezeigt, HP und Forum gehen auch.

Danke euch :)