Portscanner mit mehreren Threads
Diese Konsolenanwendung kann mit mehreren Threads merere Ports scannen. Einige Ports können doppelt erscheinen.
Feedback erwünscht
Code:
Module Module1
Dim IPadresse As String = "server.de"
Sub Main()
Console.WriteLine("geben Sie einen Start- und Entpot an dun die Anzahl der Threads:")
Dim sp As Integer = Console.ReadLine
Dim ep As Integer = Console.ReadLine
Dim threads As Integer = Console.ReadLine()
Aufteilen(sp, ep, threads)
While Console.ReadLine <> "exit"
End While
End Sub
Private Structure Parameter
Dim StartPort As Integer
Dim EndPort As Integer
End Structure
Private Sub Aufteilen(ByVal sp As Integer, ByVal ep As Integer, ByVal ts As Integer)
Dim range As Integer = ep - sp
Dim anzahlderthreads As Integer = ts
Dim threadrange As Integer = range / anzahlderthreads
For i As Integer = 0 To anzahlderthreads - 1
Dim startport As Integer = sp + (threadrange * i)
Dim endport As Integer = sp + (threadrange * (i + 1)) + 1
Dim p As New Parameter
p.StartPort = startport
p.EndPort = endport
Dim t As New System.Threading.Thread(AddressOf Scannen)
t.IsBackground = True
t.Start(p)
Console.WriteLine("Thread gestartet SP:" & startport & " EP:" & endport)
Next
End Sub
Private Sub Scannen(ByVal P As Parameter)
For AktuellerPort As Integer = P.StartPort To P.EndPort
Dim c As New System.Net.Sockets.TcpClient
c.ReceiveTimeout = 100
Try
c.Connect(IPadresse, AktuellerPort)
Console.WriteLine(AktuellerPort & " ist offen.")
Catch ex As Exception
End Try
Next
Console.WriteLine("Fertig!")
End Sub
End Module
Edit:
Video mit Erklärung:
GreezZz Krusty