Hoşgeldin Misafir

Kod python ile port tarayıcı

general_goril

26 Tem 2025
16 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Selam dostlar,


Bu konuda sizlerle tamamen Python ile kendim yazmış olduğum, renkli çıktı veren, hızlı ve gizli modda çalışabilen gelişmiş bir Port Tarama Aracı paylaşacağım.
Kod tamamen açık kaynak olup istediğiniz gibi geliştirebilirsiniz.


⚡ Özellikler:
  • ? Renkli terminal çıktısı (Colorama desteği)
  • ? Hızlı tarama modu (multi-threading ile)
  • ?️‍♂️ Gizli mod (rastgele gecikmeli, tespit edilmesi zor)
  • ? Bilinen port açıklamaları
  • ⚠️ Riskli port uyarıları
  • ? Güvenlik puanı hesaplama
  • ?️ Engellenmiş port tespiti (Firewall algılama)

? Kullanım
Python 3 yüklü olmalı.

Colorama kütüphanesini yükleyin:


pip install colorama
Kod dosyasını ip_tools.py olarak kaydedin.

Terminalden çalıştırın:

python ip_tools.py
531664770_2081681389027351_5896788956838846873_n.png


530496067_2785856284918269_8341037188756661224_n.png

Nasıl Kullanılır?
Terminal veya komut satırını açın.

Kodun bulunduğu klasöre gidin:

cd klasor_yolu

Programı çalıştırın:

python ip_tools.py
Karşınıza menü gelecek:

Hedef IP veya alan adını yazın.
Örnek:

192.168.1.1

veya

google.com

Tarama modu seçin:

[1] Normal Mod (hızlı ama tespit edilebilir)
[2] Gizli Mod (yavaş ve sessiz)
Port aralığını girin:


Başlangıç portu: 1
Bitiş portu: 65535

Tarama başlar ve sonunda:

✅ Açık portlar

?️ Engellenmiş portlar

⚠️ Riskli port uyarıları

? Güvenlik skoru
ekranda listelenir.

? Notlar
Normal Mod hızlıdır ama güvenlik sistemleri tarafından daha kolay tespit edilir.
Gizli Mod daha yavaştır ama tespit edilme ihtimali düşüktür.

altta kodu paylaşacam size daha fazlası için teşekkur puanı gondermeyi be yorum yapmakla detsek olabilirsiniz

hepinize iyi kaoslar :cool:


Python:
# core/ip_tools.py

import socket
import threading
import time
import random
from colorama import Fore, Style, init

init(autoreset=True)

# 🧠 Bilinen port açıklamaları
PORT_DESCRIPTIONS = {
    21: 'FTP (Dosya Aktarımı)',
    22: 'SSH (Uzaktan Erişim)',
    23: 'Telnet (Güvensiz Uzaktan Erişim)',
    25: 'SMTP (E-Posta)',
    53: 'DNS (Alan Adı Hizmeti)',
    80: 'HTTP (Web)',
    110: 'POP3 (Mail)',
    139: 'NetBIOS (Paylaşım)',
    143: 'IMAP',
    443: 'HTTPS (Güvenli Web)',
    445: 'SMB (Dosya Paylaşımı)',
    3306: 'MySQL',
    3389: 'RDP (Uzak Masaüstü)',
}

# 🔥 Riskli portlar
RISKY_PORTS = [23, 139, 445, 3389]

# 🌈 Banner
ascii_banner = f"""{Fore.LIGHTGREEN_EX}
                                                
██╗ ████████╗██╗   ██╗██████╗ ██╗  ██╗
╚██╗╚══██╔══╝██║   ██║██╔══██╗██║ ██╔╝
 ╚██╗  ██║   ██║   ██║██████╔╝█████╔╝
 ██╔╝  ██║   ██║   ██║██╔══██╗██╔═██╗
██╔╝   ██║   ╚██████╔╝██║  ██║██║  ██╗
╚═╝    ╚═╝    ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝
                                      
██╗  ██╗  ██╗ █████╗  ██████╗██╗  ██╗
╚██╗ ██║  ██║██╔══██╗██╔════╝██║ ██╔╝
 ╚██╗███████║███████║██║     █████╔╝ 
 ██╔╝██╔══██║██╔══██║██║     ██╔═██╗ 
██╔╝ ██║  ██║██║  ██║╚██████╗██║  ██╗
╚═╝  ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝╚═╝  ╚═╝
                                                                                    
                                                          
{Style.RESET_ALL}
{Fore.MAGENTA}                🛰️   PORT SCANNER | BY ǤΞИΣ𐍂ΛL_GØⱤ!L |.gg/3GgXMazpdp
"""

# 💼 Servis adı al
def get_service_name(port):
    return PORT_DESCRIPTIONS.get(port, 'Tanımsız Servis')

# 🌐 IP doğrulama
def is_valid_ip(ip):
    try:
        socket.gethostbyname(ip)
        return True
    except:
        return False

# 🧵 Port tarayıcı thread fonksiyonu
def scan_port(ip, port, results, stealth):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
            sock.settimeout(1.0 if stealth else 0.5)
            result = sock.connect_ex((ip, port))
            service = get_service_name(port)
            if result == 0:
                results['open'].append((port, service))
                if port in RISKY_PORTS:
                    results['warnings'].append(f"{Fore.YELLOW}⚠️ RİSKLİ PORT AÇIK: {port} - {service}")
            elif result in (111, 10061):
                results['blocked'].append(port)
            else:
                results['closed'].append(port)
        if stealth:
            time.sleep(random.uniform(0.3, 1.5))  # Stealth delay
    except Exception as e:
        print(f"{Fore.RED}❌ Tarama hatası - Port {port}: {e}")

# 🥮 Güvenlik puanı hesapla
def calculate_security_score(results):
    score = 100
    for port, _ in results['open']:
        if port in RISKY_PORTS:
            score -= 15
        else:
            score -= 2
    return max(score, 0)

# 🚀 Tarama başlat
def run_scan(ip, start_port, end_port, stealth=False):
    mode = f"Gizli Mod" if stealth else "Normal Mod"
    print(f"\n{Fore.CYAN}🔎 {ip} adresine {start_port}-{end_port} portları arasında ({mode}) tarama başlatılıyor...\n")

    results = {
        'open': [],
        'closed': [],
        'blocked': [],
        'warnings': []
    }

    threads = []
    start_time = time.time()

    for port in range(start_port, end_port + 1):
        t = threading.Thread(target=scan_port, args=(ip, port, results, stealth))
        threads.append(t)
        t.start()

    for t in threads:
        t.join()

    duration = round(time.time() - start_time, 2)

    print(f"\n{Fore.YELLOW}🕒 Tarama Süresi: {duration} saniye")

    if results['open']:
        print(f"{Fore.GREEN}✅ Açık Portlar: {len(results['open'])}")
        for port, service in results['open']:
            print(f"{Fore.GREEN}[+] {port} - {service}")
    else:
        print(f"{Fore.RED}🚫 Açık port bulunamadı.")

    if results['blocked']:
        print(f"{Fore.MAGENTA}🛡️ Engellenmiş Portlar: {len(results['blocked'])} (Firewall olabilir)")

    if results['warnings']:
        print(f"\n{Fore.RED}‼️ Güvenlik Uyarıları:")
        for warn in results['warnings']:
            print(warn)

    score = calculate_security_score(results)
    print(f"\n{Fore.CYAN}🔐 Güvenlik Skoru: {score}/100")

def print_banner():
    print(ascii_banner)

def port_scan_menu():
    print_banner()
    target = input("🌐 Hedef IP veya alan adı: ").strip()

    ip = resolve_target(target)
    if not ip:
        print(f"{Fore.RED}❌ Geçersiz IP veya alan adı!")
        return

    try:
        print("\n[1]. Normal (Hızlı ama tespit edilebilir)")
        print("[2]. Gizli (Yavaş ve sessiz)")
        mode_choice = input("🚦 Tarama modunu seçin (1/2): ").strip()
        stealth = mode_choice == '2'

        print("\n🔢 Port Aralığı Belirleyin:")
        start_port = int(input("   ▶ Başlangıç portu (1-65535): "))
        end_port = int(input("   ▶ Bitiş portu (1-65535): "))
        if start_port < 1 or end_port > 65535 or start_port > end_port:
            raise ValueError
    except:
        print(f"{Fore.RED}❌ Giriş hatalı! Lütfen doğru aralıklar girin.")
        return

    run_scan(ip, start_port, end_port, stealth)

def resolve_target(target):
    try:
        ip = socket.gethostbyname(target)
        return ip
    except:
        return None

# Doğrudan çalıştırılabilir
if __name__ == "__main__":
    port_scan_menu()
 

THS-AI

THS-AI

THS YAPAY ZEKA
Turkhacks Kurumsal
20 Haz 2025
11,255 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Python'da port taraması için `socket` modülünü kullanabilirsin. Basit bir örnek: belirli bir IP ve port aralığında tarama yapabilirsin. Örneğin:

```python
import socket

target_ip = '127.0.0.1'
start_port = 1
end_port = 1024

for port in range(start_port, end_port + 1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(0.5)
result = sock.connect_ex((target_ip, port))
if result == 0:
print(f"Port {port} açık")
sock.close()
```

Bu temel yöntem, açık portları tespit etmeni sağlar. Gereksinimlerine göre geliştirebilirsin.