PDA

View Full Version : UDP Port prüfen? (VB2008)


nsateam
10-08-2009, 14:18
Hi,
Ist es möglich den UDP Port zu prüfen ob dieser erreichbar ist?

Im VB Forum scheint das keiner zu wissen, ich wollte mir was basteln zum prüfen ob die Server online sind, sozusagen ein Status Script in fester Form.

Bisher hab ich diesen Code:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If My.Computer.Network.Ping("77.37.12.180") Then
Label2.Text = "Online"
RichTextBox1.Text = "(Es wurde erfolgreich eine Verbindung hergestellt!)"
Else
My.Computer.Audio.Play(My.Resources.Gewitter_2, AudioPlayMode.Background)
Label2.Text = "Offline"
RichTextBox1.Text = "(Es konnte keine Verbindung hergestellt werden!)"
End If

ProgressBar1.Value += 10

Dim client1 As New System.Net.Sockets.UdpClient
Dim p1 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 8767)
Try
client1.Connect(p1)
Label4.ForeColor = Color.Green
client1.Close()
Catch ex As Exception
Label4.ForeColor = Color.Red
RichTextBox1.Text = "(Server 8767 ist offline!)"
End Try



Dim client2 As New System.Net.Sockets.UdpClient
Dim p2 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3001)
Try
client2.Connect(p2)
Label5.ForeColor = Color.Green
client2.Close()
Catch ex As Exception
Label5.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3001 ist offline!)"
End Try



Dim client3 As New System.Net.Sockets.UdpClient
Dim p3 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3002)
Try
client3.Connect(p3)
Label6.ForeColor = Color.Green
client3.Close()
Catch ex As Exception
Label6.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3002 ist offline!)"
End Try

Dim client4 As New System.Net.Sockets.UdpClient
Dim p4 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3003)
Try
client4.Connect(p4)
Label7.ForeColor = Color.Green
client4.Close()
Catch ex As Exception
Label7.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3003 ist offline!)"
End Try


Dim client5 As New System.Net.Sockets.UdpClient
Dim p5 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3004)
Try
client5.Connect(p5)
Label8.ForeColor = Color.Green
client5.Close()
Catch ex As Exception
Label8.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3004 ist offline!)"
End Try

Dim client6 As New System.Net.Sockets.UdpClient
Dim p6 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3005)
Try
client6.Connect(p6)
Label9.ForeColor = Color.Green
client6.Close()
Catch ex As Exception
Label9.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3005 ist offline!)"
End Try



Dim client7 As New System.Net.Sockets.UdpClient
Dim p7 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3006)
Try
client7.Connect(p1)
Label10.ForeColor = Color.Green
client7.Close()
Catch ex As Exception
Label10.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3006 ist offline!)"
End Try


Dim client8 As New System.Net.Sockets.UdpClient
Dim p8 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3007)
Try
client8.Connect(p8)
Label11.ForeColor = Color.Green
client8.Close()
Catch ex As Exception
Label11.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3007 ist offline!)"
End Try


Dim client9 As New System.Net.Sockets.UdpClient
Dim p9 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3008)
Try
client9.Connect(p9)
Label12.ForeColor = Color.Green
client9.Close()
Catch ex As Exception
Label12.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3008 ist offline!)"
End Try


Dim client10 As New System.Net.Sockets.UdpClient
Dim p10 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("77.37.12.180"), 3009)
Try
client10.Connect(p1)
Label13.ForeColor = Color.Green
client10.Close()
Catch ex As Exception
Label13.ForeColor = Color.Red
RichTextBox1.Text = "(Server 3009 ist offline!)"
End Try
End Sub
End Class


Es kommt keine Fehlermeldung aber er sagt das alle Server online sind was aber nicht stimmt.

Danke im vorraus!

/dev/null/
10-08-2009, 16:12
Du warst schon auf dem richtigen Weg:
http://forum.vb-paradise.de/index.php?page=Thread&postID=149935&5c5c5f01#post149935

Einfach mal dort weiter machen :)

nsateam
10-08-2009, 17:07
Nette Idee ;)
Soll ich dich gleich verkohlen oder du mich zu erst? O.o

Ich hab doch gesagt das anscheind keiner Ahnung hat wies richtig geht sonst würd mir doch jemand helfen oder nicht?

Germeshausen.de
10-08-2009, 20:26
Ich hab doch gesagt das anscheind keiner Ahnung hat wies richtig geht sonst würd mir doch jemand helfen oder nicht?

Du weisst was Optimimus ist, oder?
Wenn nicht, dann erkläre ich es dir.
Optimismus ist ein Mangel an Informationen.

nsateam
11-08-2009, 13:49
Das große Problem ist ja das ich dort im Forum nicht nochmal im Thread antworten sollte, es würde den Thread wieder nach oben bringen aber vermutlich als Spam gewertet werden.

maxi1990
11-08-2009, 14:20
Ich persönlich würde das ganze über die Telnet Schnittstelle und der einfachen Serverliste (sl) regeln.

nsateam
11-08-2009, 14:32
Stimmt, jetzt wo dus sagst.
Nur da muss ich wieder Googlen weil ich mit dem Telnet krams nicht so ganz klar komme.
Thx für die Idee

maxi1990
11-08-2009, 15:17
Ich geb' dir einen Tipp: Schreibe dir eine anständige Telnet Klasse für TeamSpeak2, die zumindest alle Grundfunktionen eingebaut hat (connect, disconnect, read und write) mit Exception-Handling usw.
Darauf kannst du dann alle deine folgenden Programme aufbauen.

Germeshausen.de
11-08-2009, 15:25
Ich kann mir denken, was du vor hast, aber nur um sicher zu gehen, erläutere einfach mal kurz, was du genau an Informationen haben möchtest. Dann kann man sich ja mal Gedanken darüber machen, wie man das Ziel am leichtesten und effektivsten erreicht.
Denn wenn es um die reine Prüfung eines UDP-Portes geht, dann reicht ja vielleicht auch einfach ein kleines Script aus.

nsateam
11-08-2009, 15:31
Ich geb' dir einen Tipp: Schreibe dir eine anständige Telnet Klasse für TeamSpeak2, die zumindest alle Grundfunktionen eingebaut hat (connect, disconnect, read und write) mit Exception-Handling usw.
Darauf kannst du dann alle deine folgenden Programme aufbauen.
Das kommt noch....immer langsam voran.

Ich kann mir denken, was du vor hast, aber nur um sicher zu gehen, erläutere einfach mal kurz, was du genau an Informationen haben möchtest.
Wie du ja selbst sagst:
Denn wenn es um die reine Prüfung eines UDP-Portes geht, dann reicht ja vielleicht auch einfach ein kleines Script aus.
so ist es.

Germeshausen.de
11-08-2009, 16:02
Also unter Linux kannst du einfach verwenden. nmap -sU -p <PORT> <ZIEL>Für Windows gibt es ebenfalls nmap, sodass du den Befehl dort ebenfalls verwenden kannst.
<PORT> kann auch eine Portbereich sein
<ZIEL> ist die IP oder der DNS-Name des Zielservers

Beispiel:
nmap -sU -p 8767-9000 123.123.123.123
Der Befehl würde alle offenen UDP-Ports des Servers mit der IP 123.123.123.123 anzeigen.

Das Ganze kann man sich nun auch noch als Link auf dem Desktop ablegen und voila, man hat die Info, die man haben möchte.
cmd /k nmap -sU -p 8767-9000 123.123.123.123

Nur mal so als Anregung. Vielleicht genügt das ja schon.

nsateam
11-08-2009, 16:35
Hab nochmal meine Taktik überdacht....Das Programm wird einfach nur Telnet Befehle umsetzen, also den Umgang verinfachen.....

Hat jemand Ideen was für funktionen ich einbauen soll? Es gibt 3 Registerkarten:
Status (Serverstatus) Operationen (Serveraktionen) Optionen (Programmeinstellungen)

Ich bräuchte vielleicht ein paar mehr vorschläge?!