Port taraması yapmak

Yönetici
Developer
Kurucu
Katılım
27 Mar 2025
Mesajlar
21
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:​

  1. 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.
  2. Kullanıcı Girişi: Kullanıcıdan taranacak IP adresini ve port aralığını almak için Console.ReadLine() kullanıyoruz.
  3. Port Tarama: Belirlenen port aralığında döngü ile her porta bir iş parçacığı (Thread) açarak CheckPort fonksiyonunu çağırıyoruz.
  4. 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.
  5. 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.
 
Üst