NetScout, ağ güvenliği profesyonelleri ve sistem yöneticileri için geliştirilmiş Python tabanlı network tarama ve keşif aracıdır. Multi-threading desteği ve REST API ile hızlı ve etkili ağ analizi sağlar.
- Port Scanner: TCP port tarama ve servis tespiti
- Network Discovery: Ağdaki aktif cihazları bulma (Ping Sweep)
- Fast Scanner: Multi-threading ile hızlandırılmış tarama (10x-50x hızlı)
- Service Detection: Açık portlardaki servisleri tanımlama
- Flask tabanlı RESTful API
- CORS desteği ile cross-origin erişim
- JSON formatında sonuçlar
- Health check ve monitoring endpoint'leri
- İnteraktif CLI menü sistemi
- API Test Client (otomatik ve manuel test)
- Programatik kullanım için Python modülleri
| Kategori | Teknoloji | Versiyon | Açıklama |
|---|---|---|---|
| Core | Python | 3.7+ | Ana programlama dili |
| Network | socket | built-in | TCP/IP bağlantıları |
| Threading | concurrent.futures | built-in | Paralel işlemler |
| API | Flask | 2.2+ | REST API server |
| CORS | flask-cors | 3.0+ | Cross-origin requests |
| HTTP | requests | 2.28+ | API test client |
| Network Utils | subprocess | built-in | Ping operations |
| Data | ipaddress | built-in | IP/subnet hesaplamaları |
- Python 3.7 veya üzeri
- pip (Python package manager)
- Unix/Linux/macOS (Windows kısmen desteklenir)
# Repo'yu klonla
git clone https://github.com/seferogluemre/network-security-scanner.git
cd netscout-py
# Gereksinimleri kur
pip3 install -r requirements.txt
# Ana programı çalıştır
python3 main.py# Core dependencies
pip3 install flask flask-cors requests
# Optional (development)
pip3 install pytest black flake8# Ana menüyü başlat
python3 main.py
# Menü seçenekleri:
# 1. 🎯 Port Tarama - Belirli portları tara
# 2. 🌐 Ağ Keşfi - Ağdaki cihazları bul
# 3. ⚡ Hızlı Tarama - Multi-threading ile hızlı tarama
# 4. 📊 Detaylı Rapor - Gelişmiş analiz (yakında)# Yaygın portları tara
Hedef IP: 192.168.1.1
Tarama türü: 1 (Yaygın portlar)
# Özel port aralığı
Hedef IP: 10.0.0.1
Tarama türü: 2 (Port aralığı)
Başlangıç: 1
Bitiş: 1000
# Manuel port listesi
Hedef IP: example.com
Tarama türü: 3 (Özel portlar)
Portlar: 80,443,22,21,3000python3 api/server.py
# Output:
# 🚀 NetScout API Server Başlatılıyor...
# 🌐 URL: http://localhost:8080
# ✨ Ctrl+C ile durdurun| Method | Endpoint | Açıklama | Parametreler |
|---|---|---|---|
GET |
/ |
Ana sayfa ve endpoint listesi | - |
GET |
/api/health |
Sağlık kontrolü | - |
POST |
/api/scan/ports |
Port tarama | target, ports |
POST |
/api/scan/fast |
Hızlı tarama | target, start_port, end_port, threads |
POST |
/api/network/discover |
Ağ keşfi | network (opsiyonel) |
GET |
/api/scan/simple |
Basit tarama | target (query param) |
Port Tarama (POST)
curl -X POST http://localhost:8080/api/scan/ports \
-H "Content-Type: application/json" \
-d '{
"target": "192.168.1.1",
"ports": [80, 443, 22, 21, 3000]
}'Hızlı Tarama (POST)
curl -X POST http://localhost:8080/api/scan/fast \
-H "Content-Type: application/json" \
-d '{
"target": "127.0.0.1",
"start_port": 1,
"end_port": 1000,
"threads": 100
}'Basit Tarama (GET)
curl "http://localhost:8080/api/scan/simple?target=google.com"# Tüm endpoint'leri test et
python3 api/test_client.py --auto# Manuel test menüsü
python3 api/test_client.py
# Test menüsü:
# 1. 🎯 Port Tarama
# 2. ⚡ Hızlı Tarama
# 3. 🌐 Ağ Keşfi
# 4. 🔍 Basit Tarama
# 5. 🩺 Sağlık Kontrolü# Port scanner
from core.port_scanner import PortScanner
scanner = PortScanner()
results = scanner.scan_ports("192.168.1.1", [80, 443, 22])
print(f"Açık portlar: {results['open_ports']}")
# Hızlı tarama
from core.threaded_scanner import FastPortScanner
fast_scanner = FastPortScanner(max_threads=100)
open_ports = fast_scanner.scan_port_range_threaded("10.0.0.1", 1, 1000)
print(f"Bulunan portlar: {open_ports}")
# Ağ keşfi
from core.network_discovery import NetworkDiscovery
discovery = NetworkDiscovery()
alive_hosts = discovery.discover_network("192.168.1.0/24")
print(f"Canlı hostlar: {alive_hosts}")- Siber Güvenlik Uzmanları - Penetration testing ve vulnerability assessment
- Sistem Yöneticileri - Network monitoring ve troubleshooting
- DevOps Engineers - Infrastructure monitoring ve health checks
- Öğrenciler - Cybersecurity ve network programming öğrenimi
- Araştırmacılar - Network security research ve analiz
- IT Profesyonelleri - Network inventory ve documentation
- Network programming öğrenimi
- Python socket programming
- Multi-threading concepts
- REST API development
- Cybersecurity fundamentals
- Internal network auditing
- Service discovery ve inventory
- Network troubleshooting
- Automated monitoring entegrasyonu
- CI/CD pipeline health checks
| Tarama Türü | 100 Port | 1000 Port | 10000 Port |
|---|---|---|---|
| Sıralı | ~100 saniye | ~1000 saniye | ~10000 saniye |
| Threading | ~3-5 saniye | ~10-15 saniye | ~30-60 saniye |
| Hız Artışı | 20x-30x | 60x-100x | 150x-300x |
- CPU: Orta (multi-threading)
- Memory: Düşük (~50-100MB)
- Network: Orta (paralel bağlantılar)
- Disk: Minimal (log files)
netscout-py/
├── 📄 main.py # Ana CLI menü
├── 📄 requirements.txt # Python gereksinimleri
├── 📁 core/ # Temel tarama modülleri
│ ├── port_scanner.py # Port tarama motoru
│ ├── network_discovery.py # Ağ keşif modülü
│ └── threaded_scanner.py # Multi-thread tarama
├── 📁 api/ # REST API modülleri
│ ├── server.py # Flask API server
│ └── test_client.py # API test client
├── 📁 utils/ # Yardımcı fonksiyonlar
│ ├── logger.py # Logging utilities
│ └── network_utils.py # Network helper functions
├── 📁 config/ # Konfigürasyon
│ └── settings.py # Uygulama ayarları
└── 📁 tests/ # Test dosyaları
└── test_scanner.py # Unit testler
export NETSCOUT_API_PORT=8080
export NETSCOUT_LOG_LEVEL=INFO
export NETSCOUT_MAX_THREADS=100
export NETSCOUT_TIMEOUT=5# config/settings.py dosyasını düzenle
DEFAULT_TIMEOUT = 3
MAX_THREADS = 100
API_PORT = 8080
LOG_LEVEL = "INFO"# Test suite'i çalıştır
python -m pytest tests/
# Coverage report
python -m pytest --cov=core tests/# API server'ı başlat (terminal 1)
python3 api/server.py
# Test client'ı çalıştır (terminal 2)
python3 api/test_client.py --autoBu araç sadece aşağıdaki durumlarda kullanılmalıdır:
✅ İzin Verilen Kullanımlar:
- Kendi ağınızda test ve monitoring
- Yetkiniz olan sistemlerde güvenlik testi
- Eğitim amaçlı öğrenme ve araştırma
- Kurumsal ortamda network auditing (izin ile)
- Penetration testing (resmi sözleşme ile)
❌ Yasak Kullanımlar:
- İzinsiz ağ tarama (illegal)
- Başkalarının sistemlerine saldırı
- DDoS veya DoS saldırıları
- Kötü niyetli aktiviteler
- Gizlilik ihlali amaçlı kullanım
- Bu aracı kullanarak tüm yasal sorumluluk kullanıcıya aittir
- Yerel ve uluslararası cybersecurity yasalarına uyun
- Etik hacking prensiplerini benimseyin
- Şüpheli durumlarda hukuki danışmanlık alın
- Responsible Disclosure - Bulduğunuz güvenlik açıklarını sorumlu şekilde bildirin
- No Harm Principle - Sistemlere zarar vermeyin
- Permission First - Önce izin alın, sonra test edin
- Educational Purpose - Öğrenme amaçlı kullanın
# Fork & clone
git clone https://github.com/yourusername/netscout-py.git
cd netscout-py
# Development branch oluştur
git checkout -b feature/new-feature
# Değişiklikleri commit et
git add .
git commit -m "feat: add new scanning feature"
# Pull request gönder
git push origin feature/new-feature# Code formatting
black *.py core/*.py api/*.py
# Linting
flake8 --max-line-length=88 .
# Type checking (optional)
mypy core/ api/- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 📖 Documentation: Wiki sayfaları
- 💬 Discord: NetScout Community
- 📧 Email: security@netscout.dev
- 🐦 Twitter: @NetScoutTool
- Web Dashboard - Modern web arayüzü
- Database Integration - Scan history
- Scheduled Scans - Otomatik tarama
- Email Notifications - Alert sistemi
- Docker Support - Containerization
- Kubernetes Integration - Cloud-native deployment
- Advanced Reporting - PDF/HTML raporlar
- Plugin System - Genişletilebilir mimari
- Machine Learning - Anomaly detection
- Distributed Scanning - Multi-node support
- Real-time Monitoring - WebSocket streaming
- Mobile App - iOS/Android client
Bu proje MIT License altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakınız.
MIT License - Özgürce kullanabilir, değiştirebilir ve dağıtabilirsiniz.
Tek şart: Telif hakkı bildirimini korumanız.
- @emreseferoglu - Proje kurucusu
- Python Community - Güçlü ecosystem
- Flask Team - Mükemmel web framework
- Open Source Community - İlham ve destek
- Python - Güçlü ve esnek programlama dili
- Flask - Minimal ve etkili web framework
- Socket Programming - Network communication
- Threading - Paralel işlem desteği