Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks
Autor
Nachricht
^^kev####
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 476
Wohnort: Haan

UDP Portscan mit Progressbar
Verfasst am: 29.06.2009, 14:00

Beschreibung:
Dieses Snippet scant auf einem zu definierenden System eine angegebene UDP Portrange.

Als Ergebnis wird zurückgeliefert, ob über den Port eine Verbindung hergestellt werden kann oder nicht.

Auf einem Formular werden die n.g. Steruelemente zur Verfügung gestellt:

1 Listview Steuerelement
1 Command Button
1 Backgroundworker
1 Progressbar

Die Listview muss 3 Spaten enthalten, View sollte auf Details stehen.

Funktion:
Visual Basic: [code]Public startPort As Integer
Public endPort As Integer
Public IPAddress As String
Public MaxValue As Integer
Public CurrentValue As Integer

'Hier der Aufruf

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

BackgroundWorker1.WorkerReportsProgress = True
BackgroundWorker1.WorkerSupportsCancellation = True

'Dieses System wird gescannt
IPAddress = "10.0.0.1"
startPort = 1
endPort = 200

'Um einen evtl. Überlauf vorzubeugen
MaxValue = endPort + 1

'Progressbar Aktualisieren
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = MaxValue



For startPort = startPort To endPort
Me.BackgroundWorker1.RunWorkerAsync()

'Da ein Backgroundworker immer nur eine
'Aufgabe ausführen kann, warten wir hier
'bis er fertig ist und mit der nächsten
'Aufgabe weitermachen kann

While Me.BackgroundWorker1.IsBusy = True
Application.DoEvents()
End While
Next

Me.ProgressBar1.Value = 0

End Sub

'Der Backgroundworker der die eigentliche Arbeit ausführt

Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

Try
Dim lvi As New ListViewItem(startPort)
Dim tryToConnect As System.Net.Sockets.UdpClient = New System.Net.Sockets.UdpClient(IPAddress, startPort)
lvi.SubItems.Add("is opend")
lvi.ForeColor = Color.Red
BackgroundWorker1.ReportProgress(startPort, lvi)

Catch ex As Exception

Dim lvi As New ListViewItem(startPort)
lvi.SubItems.Add("is Closed")
lvi.SubItems.Add(ex.Message)
lvi.ForeColor = Color.Green
BackgroundWorker1.ReportProgress(startPort, lvi)

End Try
End Sub

'Da der Backgroundworke nicht auf die Steuerelemente
'zugreifen kann und darf, hier die entsprechende
'Vorgehensweise

Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Dim lvi As New ListViewItem
'Daten vom BackGroundworker
lvi = e.UserState

Me.ListView1.Items.Add(lvi)
lvi.EnsureVisible()
'Progressbar aktualisieren
Me.ProgressBar1.Value = e.ProgressPercentage

End Sub
[/code]

Quelle: dotnet-snippets.de
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks

Tags: visual basic, udp, progressbar

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1038 30.10.2009, 11:26
Keine neuen Beiträge IntStr()funktion 1176 11.10.2007, 08:49
Keine neuen Beiträge TopMost Funktion unter DirectX 921 27.07.2007, 10:48
Keine neuen Beiträge Wie Funktion nutzen ? 1100 29.06.2007, 20:59
Keine neuen Beiträge update funktion einbauen 1341 28.01.2007, 23:11
 



[ Time: 0.1301s ][ Queries: 81 (0.0252s) ][ GZIP on - Debug on ]