- Katılım
- 27 Mar 2025
- Mesajlar
- 21
- Konu Yazar
- #1
VB.NET ile detaylı bir port taraması yapmak için, TCP bağlantıları üzerinden belirli bir IP adresine yönelik bağlantı denemeleri gerçekleştiren bir program geliştirebilirsiniz. Aşağıda, bir IP adresine karşı belirli bir port aralığında tarama yapma yeteneği sunan basit bir örnek verilmiştir. Bu kod örneği, TcpClient sınıfını kullanarak belirli portların açık olup olmadığını kontrol edecektir.
Port Tarama Uygulaması (VB.NET)
C#:
Imports System.Net.Sockets
Imports System.Threading
Module PortScanner
Sub Main()
Dim ipAddress As String
Dim startPort As Integer
Dim endPort As Integer
' Kullanıcıdan IP adresini al
Console.Write("Tarama yapılacak IP adresini girin: ")
ipAddress = Console.ReadLine()
' Kullanıcıdan port aralığını al
Console.Write("Başlangıç portunu girin: ")
startPort = Integer.Parse(Console.ReadLine())
Console.Write("Bitiş portunu girin: ")
endPort = Integer.Parse(Console.ReadLine())
' Port taramasını başlat
For port As Integer = startPort To endPort
Dim thread As New Thread(Sub() CheckPort(ipAddress, port))
thread.Start()
Next
' Kullanıcıdan çıkış için bir tuşa basmasını bekle
Console.WriteLine("Taramalar devam ediyor... Çıkmak için bir tuşa basın.")
Console.ReadKey()
End Sub
Private Sub CheckPort(ipAddress As String, port As Integer)
Using client As New TcpClient()
Try
Dim result As IAsyncResult = client.BeginConnect(ipAddress, port, Nothing, Nothing)
Dim success As Boolean = result.AsyncWaitHandle.WaitOne(1000)
If success AndAlso client.Connected Then
Console.WriteLine($"Port {port} açık.")
End If
Catch ex As Exception
'hata alındığında bir şey yapma
Finally
client.Close()
End Try
End Using
End Sub
End Module
Açıklamalar:
- Namespace Kullanımı: Imports System.Net.Sockets ve Imports System.Threading ile gerekli sınıfları ekliyoruz. TcpClient, TCP bağlantıları kurmak için kullanılır; Thread, çoklu iş parçacığı oluşturmak için kullanılır.
- Kullanıcı Girişi: Kullanıcıdan taranacak IP adresini ve port aralığını almak için Console.ReadLine() kullanıyoruz.
- Port Tarama: Belirlenen port aralığında döngü ile her porta bir iş parçacığı (Thread) açarak CheckPort fonksiyonunu çağırıyoruz.
- CheckPort Fonksiyonu: Bu fonksiyon, belirtilen portun açık olup olmadığını kontrol eder. TcpClient kullanarak bağlantı denemesi yapılır ve bağlantı kurulduğunda portun açık olduğu bilgisi konsola yazdırılır.
- Zaman Aşımı: BeginConnect fonksiyonu ile bir bağlantı denemesi başlatıyoruz ve 1000 ms (1 saniye) bekliyoruz. Port yanıt verirse açık olduğunu kabul ediyoruz.
Uyarılar:
- Port taraması yaparken dikkatli olmalısınız; bazı ağlarda bu tür taramalara izin verilmeyebilir ve güvenlik duvarları tarafından engellenebilir veya yanlışlıkla kötü niyetli etkinlik olarak algılanabilir.
- Çok sayıda porta aynı anda istek göndermek, ağda aşırı yüklenmeye neden olabilir ve bu nedenle dikkatli bir şekilde kullanılmalıdır.
- Uygulamayı çalıştırmadan önce uygun izinlere sahip olduğunuzdan emin olun.