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.
Bu snippet, python-code-snippets reposunun içindedir. Tüm repoyu indirmeden sadece bu klasörü çekebilirsiniz:
git clone --depth 1 --filter=blob:none --sparse https://github.com/Mefamex/python-code-snippets.git cd python-code-snippets git sparse-checkout set localHost-server
Klasörü GitHub'dan indirip
localHost-serveriçine koymanız da yeterlidir.Ayrıntılar (arşivle indirme,
sparse-checkout add/list/disable, alias) için: Git ile Sadece Belirli Alt Klasörleri Klonlama
Ardından:
python main.py
Opsiyonel 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 8081
Tarayı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