Yerel (localhost / LAN) üzerinde seçilen dizini hızlıca HTTP üzerinden servis eden, bir port aralığını tarayıp ilk boş portu seçebilen, yalnızca Python standart kütüphanesi kullanan hafif araç.
last_modify: 2025-08-13
- Port tarama (varsayılan aralık: 8000–8100)
- Doğrudan port seçimi (-p / --port)
- Tek port veya aralık (-r 9000-9050 ya da -r 8080)
- Yerel IP (LAN) tespiti (fallback 127.0.0.1)
- Windows netstat entegrasyonu ile dolu port listesi
- Harici bağımlılık yok (sadece standart lib)
- Basit, okunabilir kod – kolay genişletme
| Bileşen | Gereksinim |
|---|---|
| Python | 3.8+ |
| OS | Windows / Linux / macOS |
| Bağımlılık | Yok |
Not: netstat parçası Windows odaklıdır; Linux/macOS için ss veya lsof adaptasyonu ekleyebilirsiniz.
Klonlayın veya dosyayı indirin, ardından:
python main.pyOpsiyonel EXE (PyInstaller):
pip install pyinstaller
pyinstaller --onefile --console main.py# Varsayılan aralıkta port ara
python main.py
# Belirli port
python main.py -p 8080
# Özel aralık
python main.py -r 9000-9050
# Tek port dene (aralık gibi yazmadan)
python main.py -r 8081Tarayıcı erişimi:
http://localhost:<port>
http://<LAN_IP>:<port>
| Argüman | Açıklama | Örnek |
|---|---|---|
| -p / --port | Kesin port | -p 8005 |
| -r / --range | Aralık veya tek port | -r 8100-8200 / -r 8101 |
Öncelik: --port verilirse aralık yok sayılır.
============================== Scanning Ports ==============================
Aralık: 8000-8100
Checking ports : 8000 - 8100
...
Seçilen boş port: 8001
============================== Starting HTTP Server ==============================
İstenen port: 8001
Çalışma dizini : D:\\localHost-server
Erişim adresleri:
http://localhost:8001 | http://192.168.1.34:8001
(Ctrl+C ile durdur)
- Kimlik doğrulama yok; aynı ağdaki herkes dosyaları görebilir.
- Hassas dizinlerde çalıştırmayın (örn. bütün C:\ kökü).
- İnternete port yönlendirmesi (NAT) yapmayın.
| İşlev | Amaç |
|---|---|
| find_available_port | Aralıkta bind denemesi ile ilk boş port |
| is_port_in_use | bind başarısız ise port dolu varsayımı |
| get_local_ip | Routing tablosu + hostname fallback |
| run_server | socketserver.TCPServer ile servis |
| Belirti | Neden | Çözüm |
|---|---|---|
| getaddrinfo failed | Hatalı host tuple | Host boş string olsun: ("", port) |
| Port dolu gözüküyor | Firewall / başka servis / izin | Farklı aralık, yönetici mod veya izin ayarı |
| LAN IP 127.0.0.1 | Yönlendirme yok | Aynı makine için sorun değil |
- IPv6 / ThreadingTCPServer
- Çoklu sürücü map (C, D) -> özel handler
- Basit Basic-Auth ekleme
- Renkli terminal (colorama) desteği