TeamSpeak UDP Port prüfen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von magerquark.

    TeamSpeak UDP Port prüfen

    Hallo,
    Ich versuche ein Programm zu basteln welches per Knopfdruck prüft ob bestimmte Server online sind. Nur ich komm damit nicht klar, in meinem Code sind wohl "mehrere Fehler".

    Kann man überhaupt einen UDP Port auf die verfügbarkeit prüfen? Ich habs mit nen Connect versucht aber anscheind klappt das nicht so wie es soll.

    Danke im vorraus!

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim client1 As New System.Net.Sockets.UdpClient
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. If My.Computer.Network.Ping("77.37.12.180") Then
    5. Label2.Text = "Online"
    6. RichTextBox1.Text = "(Es wurde erfolgreich eine Verbindung hergestellt!)"
    7. Else
    8. My.Computer.Audio.Play(My.Resources.Gewitter_2, AudioPlayMode.Background)
    9. Label2.Text = "Offline"
    10. RichTextBox1.Text = "(Es konnte keine Verbindung hergestellt werden!)"
    11. End If
    12. Dim p1 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 8767)
    13. Try
    14. client1.Connect(p1)
    15. Label4.ForeColor = Color.Green
    16. Catch ex As Exception
    17. RichTextBox1.Text = "(Server 8767 ist offline!)"
    18. End Try
    19. Dim p2 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3001)
    20. Try
    21. client1.Connect(p2)
    22. Label5.ForeColor = Color.Green
    23. Catch ex As Exception
    24. RichTextBox1.Text = "(Server 3001 ist offline!)"
    25. End Try
    26. Dim p3 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3002)
    27. Try
    28. client1.Connect(p3)
    29. Label6.ForeColor = Color.Green
    30. Catch ex As Exception
    31. RichTextBox1.Text = "(Server 3002 ist offline!)"
    32. End Try
    33. Dim p4 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3003)
    34. Try
    35. client1.Connect(p4)
    36. Label7.ForeColor = Color.Green
    37. Catch ex As Exception
    38. RichTextBox1.Text = "(Server 3003 ist offline!)"
    39. End Try
    40. Dim p5 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3004)
    41. Try
    42. client1.Connect(p5)
    43. Label8.ForeColor = Color.Green
    44. Catch ex As Exception
    45. RichTextBox1.Text = "(Server 3004 ist offline!)"
    46. End Try
    47. Dim p6 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3005)
    48. Try
    49. client1.Connect(p6)
    50. Label9.ForeColor = Color.Green
    51. Catch ex As Exception
    52. RichTextBox1.Text = "(Server 3005 ist offline!)"
    53. End Try
    54. Dim p7 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3006)
    55. Try
    56. client1.Connect(p7)
    57. Label10.ForeColor = Color.Green
    58. Catch ex As Exception
    59. RichTextBox1.Text = "(Server 3006 ist offline!)"
    60. End Try
    61. Dim p8 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3007)
    62. Try
    63. client1.Connect(p8)
    64. Label11.ForeColor = Color.Green
    65. Catch ex As Exception
    66. RichTextBox1.Text = "(Server 3007 ist offline!)"
    67. End Try
    68. Dim p9 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3008)
    69. Try
    70. client1.Connect(p9)
    71. Label2.ForeColor = Color.Green
    72. Catch ex As Exception
    73. RichTextBox1.Text = "(Server 3008 ist offline!)"
    74. End Try
    75. Dim p10 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3009)
    76. Try
    77. client1.Connect(p10)
    78. Label13.ForeColor = Color.Green
    79. Catch ex As Exception
    80. RichTextBox1.Text = "(Server 3009 ist offline!)"
    81. End Try
    82. client1.Close()
    83. End Sub
    84. End Class


    Der zeigt mir immer das selbe an, aber auch das selbe stimmt überhaupt nicht.

    Achso danke das wenigstens du mich auf eine Idee bringst!
    Der Fehler ist:
    Wenn ich auf den Button klick startet er und dann werden die Daten falsch angezeigt z.B.:
    8767 Online
    3001 Online
    3002 Online
    3003 Offline (Obwohl er Online ist)
    ...

    Ich will erreichen das der anzeigt welche Port erreichbar sind also auf welchen man Connecten kann aber da er auch bei einem Aktiven Server Offline sagt glaub ich kaum das da kein Fehler ist.
    Die Labels werden gefärbt wenn der entsprechende Server online ist (grün) und wenn er offline ist (rot),

    Fast geschafft

    Ich habs jetzt über CMD versucht also mit Telnet, das klappte. Jetzt frag ich mich noch wie ich den Telnet Inhalt in einer RichtTextBox angezeigt bekommen kann?
    Oder ist es vielleicht sogar möglich den Inhalt auf bestimmte Inhalte zu durchsuchen und je nachdem ein Label färben?
    Kannst du das vielleicht auch noch etwas leichter formulieren? ?(

    EDIT:
    Jetzt schnall ich wie du das meintest..... :)

    Hier ist erstmal der Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If My.Computer.Network.Ping("77.37.12.180") Then
    4. Label2.Text = "Online"
    5. RichTextBox1.Text = "(Es wurde erfolgreich eine Verbindung hergestellt!)"
    6. Else
    7. My.Computer.Audio.Play(My.Resources.Gewitter_2, AudioPlayMode.Background)
    8. Label2.Text = "Offline"
    9. RichTextBox1.Text = "(Es konnte keine Verbindung hergestellt werden!)"
    10. End If
    11. Try
    12. 'telnet Start und Verbindung zur IP
    13. Dim Prozess As New Process()
    14. Prozess.StartInfo.FileName = "telnet.exe"
    15. Prozess.Start()
    16. Timer1.Start()
    17. Catch ex As Exception
    18. Timer1.Stop()
    19. MsgBox("Fehler")
    20. End Try
    21. End Sub
    22. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    23. SendKeys.Send("o " & "{ENTER}")
    24. SendKeys.Send("77.37.12.180 " & "2648" & "{ENTER}")
    25. SendKeys.Send("sl" & "{ENTER}")
    26. Timer1.Stop()
    27. End Sub
    28. End Class


    Jetzt ist meine Frage ob man die Telnet Geschichte in eine RichTextBox kloppen kann, b.z.w. das Ergebniss. Geht das?