Beni Oku (Türkçe) | Readme (English)
My Network Scanner (MyNeS), "Ailenizin Kullanıcı Dostu Ağ Tarayıcısı" mottosu ile geliştirilmiş, yerel ağınızdaki tüm cihazları (Router/Modem, Laptop, Tablet, Desktop, Server, IP Camera, Gaming Console, Smart Home Appliances, .....) tarayıp, tespit ettiği cihazlar ile ilgili detaylı bilgileri kullanıcı dostu ve kolay bir arayüz üzerinden kolaylıkla yönetebilmenizi sağlayan profesyonel bir uygulamadır.
Modern ve kullanıcı dostu web arayüzü ile ağ yönetimini kolaylaştırır. Gelişmiş ve detaylı tarama, AI destekli cihaz tanıma ve güvenlik özellikleri sunar.
Sürüm değişiklikleri: CHANGELOG.md
- 🌐 Web-based Interface - Modern, kullanıcı dostu Web tabanlı arayüz
- 🔍 Otomatik Ağ Keşfi: Yerel ağ aralığını otomatik olarak belirler
- 🔬 ARP Taraması: Hızlı cihaz keşfi için ARP protokolü kullanır
- 🔌 Gelişmiş Port Taraması: 1000+ port ile kapsamlı servis tespiti
- 🖥️ Cihaz Tipi Tespiti: Router, bilgisayar, telefon, kamera vb. otomatik tespit
- 🐳 Docker Entegrasyonu: Container ve virtual network tespiti
- 🔐 Multi-Protocol Analiz: SSH, FTP, HTTP, SNMP desteği
- 📝 Cihaz Yönetini: Cihaz bilgilerini elle değiştirebilme, yeni bilgiler ekleyebilme
- 🤖 AI ile Cihaz Tanıma: Anthropic / OpenAI / OpenRouter ile "Identify with AI"
- 🛡️ Güven Seviyeleri & Wake-on-LAN: Known/Unknown/Trusted etiketi, filtre ve WoL
- 🗒️ Kalıcı Loglar: Yeniden başlatmayı atlatan, gün seçicili günlük döner loglar
- 🎛️ Yedekleme ve Aktarım: JSON tabanalı basit ve kolay cihaz bilgilerini yedekleme ve geri yükleme
- 📊 Geçmiş Tarama Analizi: Geçmiş tarama sonuçlarını ve istatistiklerini takip edebilme
- 🌍 Çoklu Dil Desteği - Türkçe ve İngilizce dil desteği
- 📡 Çoklu Protokol Keşfi: mDNS/Bonjour, Matter, SSDP/UPnP, Bluetooth LE ve MQTT (Zigbee2MQTT / Z-Wave JS / Tasmota) — IP taramasının göremediği cihazlar
- 🔔 Periyodik İzleme ve Bildirim: Değişiklikleri tespit eder, uyarır
- 🏠 Home Assistant Entegrasyonu: MQTT Discovery ile push, REST/WebSocket ile pull
- 🗺️ Beş Görünüm: Kart, Tablo, Grafik, Topoloji ve Ev Planı
- 📱 PWA: Telefona/tablete kurulabilir, açık/koyu tema, 320px'den TV'ye duyarlı
Cihaz listesini beş farklı şekilde okuyabilirsiniz — araç çubuğundaki görünüm anahtarından geçiş yapılır.
| Görünüm | Ne işe yarar |
|---|---|
| Kart / Tablo | Ayrıntı ve toplu düzenleme |
| Grafik | Ağın bütününü tek bakışta görmek; alt ağ geçitleri merkez |
| Topoloji | Neyin neye bağlı olduğu:İnternet → router → switch/AP → grup → cihaz |
| Ev Planı | Cihazları evinizin planına sürükleyip bırakmak |
Bir IP taraması ev ağının yarısını kaçırır. MyNeS kendini duyuran her şeyi dinler: mDNS/Bonjour (yazıcı, NAS, Chromecast, HomeKit), Matter, SSDP/UPnP (router, Smart TV, kamera, konsol), Bluetooth LE (IP'si olmayan cihazlar) ve MQTT üzerinden Zigbee/Z-Wave cihazları.
Ağı belirli aralıklarla tarar, iki tarama arasındaki farkı çıkarır ve önemli olanı bildirir: yeni cihaz, cihaz çevrimdışı, IP değişimi, MAC değişimi (ARP spoofing), yeni açık port, düşük voltaj (Raspberry Pi güç sorunları), düşük pil, yüksek gecikme, zayıf sinyal.
Bildirim kanalları: MyNeS'in kendi push'u (Web Push — Home Assistant veya
üçüncü taraf bir servise gerek yok), Home Assistant notify servisi,
ntfy, Telegram, Webhook, Slack, Discord ve e-posta.
Uygulama bir PWA: ana ekrana eklenebilir, açık/koyu temayı işletim sisteminden alır ve 320px genişlikten TV'ye kadar uyum sağlar.
- IP Adresleri: IPv4 adresleri
- MAC Adresleri: Fiziksel ağ adresleri
- Hostname: Cihaz isimleri
- Üretici Bilgisi: IEEE OUI veritabanı ve online API'ler ile gelişmiş vendor tespiti
- Açık Portlar: Aktif servisler ve port numaraları
- Cihaz Tipi: Otomatik cihaz kategorilendirmesi
- Sistem Bilgileri: İşletim sistemi, donanım özellikleri
- Güvenlik Analizi: Zafiyetler ve güvenlik durumu
- Docker Bilgileri: Container durumu ve network mapping
- Multi-Source IEEE Desteği: OUI, MA-M, OUI-36, IAB, CID kayıtlarını destekler
- Otomatik Güncellemeler: IEEE kaynaklarından güncel veritabanı indirme
- Online API Fallback: Bilinmeyen MAC'ler için otomatik online arama
- 37,000+ Üretici Kaydı: Kapsamlı vendor veritabanı
- Akıllı Vendor Temizleme: Organizasyon isimlerini normalize etme
Uygulama, topladığı bilgileri kullanarak cihaz tipini otomatik olarak tahmin eder: hostname pattern'leri, vendor/OUI, açık port ve servis imzaları, bilinen cihaz imzaları ile güven skorları, otomatik alias/isimlendirme ve IoT/Sunucu/ Router gibi kategori sınıflandırması.
Bir cihazın ne olduğundan hâlâ emin değil misiniz? Cihaz Detay penceresindeki Identify with AI düğmesi, MyNeS'in zaten topladığı sinyalleri (vendor, OUI, hostname, açık portlar, banner'lar) bir LLM'e gönderir ve en olası cihaz tipini döndürür:
- Sağlayıcı seçilebilir: Anthropic, OpenAI veya OpenRouter — anahtar Ayarlar'dan girilir; anahtar yoksa düğme hiç gösterilmez (isteğe bağlı özellik).
- Güven skoru (KPI) ve seçilebilir aday cihaz tipleri; her aday geçerli bir MyNeS Cihaz Tipi'ne eşlenir, tek bir tahmine körü körüne bağlanmaz, alternatif sunar.
- Canlı çalışma durumu: dönen ikon + geçen saniye sayacı; sonuç cihaza kaydedilir.
Tüm ağın saldırı yüzeyini ve bilinen CVE riskini tek ekranda, en riskliden başlayarak gösterir (küratörlü çevrimdışı eşleme, canlı besleme değil):
- Filo risk skoru ve şiddet dağılımı (Critical / High / Medium / Low)
- Önce neyi düzeltmeli: açık Telnet, SMB/NetBIOS (EternalBlue), VNC gibi maruziyetler, etkilenen cihaz sayısıyla
- Cihaz bazında detay: tara, acknowledge, watch & alert, export
- Şifreli Credential Depolama (Fernet), çok protokol desteği (SSH, FTP, HTTP, SNMP), kısıtlı dosya izinleri ve export sırasında hassas veri temizleme
Ayarlar → Integrations altında InfluxDB 2 (Grafana push), Prometheus (Grafana scrape) ve uygulamanın canlı okunan tam REST API kataloğu yer alır; OpenAPI (swagger.json) olarak indirilebilir.
- Container Tespiti: Çalışan Docker container'ları bulma
- Network Mapping: Docker network'leri ve IP atamaları
- Virtual Interface: Docker sanal arayüzleri tespiti
- Container Detayları: Metadata ve yapılandırma bilgileri
İmaj linux/amd64 ve linux/arm64 için yayınlanır — Raspberry Pi ve Orange Pi'de de çalışır.
services:
mynes:
image: fxerkan/my_network_scanner:latest
container_name: mynes
# LAN'ı gerçekten görebilmesini sağlayan şey host ağı. Aşağıdaki nota bakın.
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- ./data:/app/data
- ./config:/app/config
environment:
MYNES_PORT: 5883
# Boş bırakılırsa ilk açılışta otomatik üretilir.
MYNES_PASSWORD: ""
# İsteğe bağlı: Zigbee2MQTT / Z-Wave JS / Tasmota cihazlarını da görmek için
MYNES_MQTT_HOST: ""
# İsteğe bağlı: Home Assistant entegrasyonu
HA_URL: ""
HA_TOKEN: ""
restart: unless-stoppeddocker compose up -dDepodaki hazır dosya: docker compose -f deploy/docker-compose.yml up -d
docker run -d \
--name mynes \
--network host \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
-v "$(pwd)/data:/app/data" \
-v "$(pwd)/config:/app/config" \
-e MYNES_PORT=5883 \
--restart unless-stopped \
fxerkan/my_network_scanner:latestArayüz: http://<sunucu-ip>:5883
İmaj perl-base, debconf, gosu, curl, pip ve setuptools olmadan
gelir: hiçbiri çalışma anında kullanılmıyordu ama aralarında Debian'ın düzeltme
yayınlamadığı 2 CRITICAL ve 18 HIGH dahil 70 CVE taşıyorlardı. Bunun bedeli
docker exec mynes apt-get install ... komutunun çalışmaması.
Konteyner içine ek bir araç gerekiyorsa deploy/Dockerfile'daki apt-get install satırına ekleyip yeniden derleyin — çalışan konteynere sonradan paket
kurmak zaten kaybolan bir değişiklikti.
MyNeS ham ARP paketleri gönderir ve mDNS/SSDP multicast dinler. İkisi de host ağ namespace'i ister — bridge ağından yalnızca bridge'i görür, LAN'ı göremez.
NET_RAWARP paketlerini oluşturmasını sağlar.NET_ADMINarayüz durumunu okumasını sağlar.- root olarak çalışmaz (
USER scanner, uid 1000) veprivilegeddeğildir. - Bu yetkiler olmadan hata vermez; ping taraması + işletim sistemi ARP önbelleğine
düşer ve daha az cihaz bulur. Neyin eksik olduğunu
/api/capabilitiessöyler.
Docker Desktop (macOS/Windows) host ağını tam desteklemez. Orada network_mode: host
yerine ports: ["5883:5883"] kullanın; keşif yeteneği kısıtlı olur.
Yalnızca size ait ağları tarayın.
| Değişken | Açıklama | Varsayılan |
|---|---|---|
MYNES_PORT |
Web arayüzü portu | 5883 |
MYNES_PASSWORD |
Kayıtlı cihaz kimlik bilgilerini şifreleyen ana parola | otomatik üretilir |
MYNES_MQTT_HOST |
MQTT broker adresi (Zigbee/Z-Wave/Tasmota keşfi) | boş |
MYNES_MQTT_USERNAME / MYNES_MQTT_PASSWORD |
MQTT kimlik bilgileri | boş |
HA_URL / HA_TOKEN |
Home Assistant adresi ve uzun ömürlü jeton | boş |
TZ |
Konteyner saat dilimi | UTC |
HA_URL / HA_TOKEN de kabul edilir. Depo kökündeki .env dosyası her giriş
noktası tarafından okunur; gerçek ortam değişkenleri dosyayı ezer.
| Yol | İçerik |
|---|---|
/app/data |
Cihaz envanteri, tarama geçmişi, uyarılar |
/app/config |
Yapılandırma ve şifrelenmiş kimlik bilgileri |
Gereksinimler
- Python 3.9+
- Nmap (port/servis tespiti için — yoksa tarama çalışır, port taraması atlanır)
- Root/Administrator yetkisi önerilir (ham ARP taraması için; yoksa MyNeS otomatik olarak ping sweep + işletim sistemi ARP cache yöntemine düşer)
- Docker (opsiyonel — container tespiti için)
brew install nmap # macOS
sudo apt-get install nmap # Ubuntu/Debian
sudo dnf install nmap # Fedora/RHEL
winget install Insecure.Nmap # Windowsgit clone https://github.com/fxerkan/my_network_scanner.git
cd my_network_scanner
python scripts/run.pyscripts/run.py sanal ortamı oluşturur, bağımlılıkları kurar, nmap'i kontrol
eder ve uygulamayı başlatır. Sadece standart kütüphane kullandığı için hiçbir
şey kurulu olmadan da çalışır.
Elle kurulum:
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[all]" # veya: pip install -r requirements.txt
python -m mynes # veya: mynesArayüz: http://localhost:5883
Docker:
docker compose -f deploy/docker-compose.yml up -dnetwork_mode: host ARP/mDNS/SSDP keşfinin LAN'ı gerçekten görebilmesi için
gereklidir. Docker Desktop'ta (macOS/Windows) host modu kısıtlıdır; compose
dosyasındaki ports: bloğunu açın (keşif kapsamı daralır).
Ham ARP taraması root ister. MyNeS yetki yoksa ping sweep'e düşer ve ICMP'ye yanıt vermeyen cihazları kaçırır. Her platformda, her şeyi root olarak çalıştırmadan kalıcı çözüm var:
python -m mynes.platform.privileges # ne gerektiğini söyler
python -m mynes.platform.privileges --apply # komutları çalıştırır (parola sorar)| Platform | Yöntem |
|---|---|
| Linux | Python ikilisinesetcap cap_net_raw,cap_net_admin+eip — sadece iki yetenek, root yok |
| macOS | access_bpf grubu + açılışta çalışan ChmodBPF LaunchDaemon (Wireshark ile aynı mekanizma) |
| Windows | Npcap sürücüsü, "Administrators only" seçeneğikapalı kurulur |
macOS'ta grup üyeliği yeni oturumda geçerli olur — çıkış yapıp tekrar girin. Durum arayüzde de görünür: Discovery → System setup.
Zamanlanmış tarama tarayıcı açık olmadan da sürsün:
python -m mynes.platform.service install # oturum açılışında başlar
python -m mynes.platform.service status
python -m mynes.platform.service uninstallmacOS'ta LaunchAgent, Linux'ta systemd user unit, Windows'ta Zamanlanmış Görev kurar. Üçü de kullanıcı seviyesindedir — sudo istemez, kaldırmak tek dosya silmektir. Gerçek bir açılış servisi (headless sunucu) için Docker imajını kullanın.
Linux'ta oturumu kapattığınızda da çalışması için: sudo loginctl enable-linger $USER
pip install "mynes[tray]"
python -m mynes.tray # sunucuyu da başlatır
python -m mynes.tray --connect http://nas.local:5883 # sadece ikonCihaz sayısı ve okunmamış uyarı rozeti simgede görünür; menüden "Scan now", "Open MyNeS" ve "Mark alerts read" var. İkon rengi durumu taşır (yeşil / sarı / kırmızı / gri).
MyNeS ağındaki tüm cihazları listeler; portu görebilen herkese bu haritayı vermemek için basit bir oturum girişi var. Varsayılan olarak kapalıdır.
-
.enviçine kullanıcı adı ve parolayı yazın:MYNES_AUTH_USERNAME=admin MYNES_AUTH_PASSWORD=uzun-bir-parolaParolayı düz metin yerine hash olarak tutmak isterseniz:
python -m mynes.web.auth --hash -
MyNeS'i yeniden başlatın.
-
Settings → Access control → Require sign-in anahtarını açın.
Giriş sayfasında "30 gün boyunca oturumu açık tut" seçeneği vardır. Kimlik
bilgisi tanımlı değilken anahtar açılamaz — kendinizi kilitlemezsiniz.
Parolayı unutursanız sunucudaki .env dosyasına bakın.
Ard arda 8 hatalı denemeden sonra o IP 5 dakika kilitlenir. Oturum çerezi
MYNES_SECRET_KEYile imzalanır; HTTPS arkasındaysanızMYNES_HTTPS=trueyapın (çerezSecureolur).
export MYNES_PASSWORD="ana_parolaniz" # yoksa otomatik üretilir
export MYNES_PORT=5883
export MYNES_DATA_DIR=/veri/yolu # MYNES_CONFIG_DIR, MYNES_HOME de var
# Home Assistant entegrasyonu (opsiyonel)
export HA_URL="http://homeassistant.local:8123"
export HA_TOKEN="uzun_omurlu_erisim_tokeni"
# MQTT / Zigbee2MQTT keşfi ve HA'ya yayın (opsiyonel)
export MYNES_MQTT_HOST="192.168.1.10"
export MYNES_MQTT_USERNAME="mynes"
export MYNES_MQTT_PASSWORD="..."Güvenlik: Ana parolayı
config/config.jsoniçine yazmayın. Bu dosya git'te takiplidir. ParolaMYNES_PASSWORDortam değişkeninden ya da git'e girmeyenconfig/.master_passworddosyasından okunur.
my_network_scanner/
├── mynes/ # Uygulama paketi
│ ├── paths.py # Dizinler (CWD'den değil paketten çözülür)
│ ├── core/
│ │ ├── scanner.py # Ana tarama motoru
│ │ ├── arp.py # Yetkisiz çalışan layer-2 keşif
│ │ ├── models.py # Birleşik cihaz modeli
│ │ ├── network.py # Arayüz/ağ yardımcıları
│ │ ├── config.py # Yapılandırma yönetimi
│ │ └── version.py # Dinamik versiyon
│ ├── discovery/ # Çoklu protokol keşfi
│ │ ├── mdns.py # mDNS/Bonjour + Matter
│ │ ├── ssdp.py # SSDP/UPnP (sadece stdlib)
│ │ ├── bluetooth.py # BLE (bleak, opsiyonel)
│ │ └── mqtt.py # Zigbee2MQTT / Z-Wave / Tasmota
│ ├── analysis/ # Derin analiz, OUI, cihaz tanıma
│ ├── monitoring/ # Zamanlayıcı, kurallar, bildirimler
│ ├── integrations/ # Home Assistant, Docker
│ ├── security/ # Şifreli credential, veri temizleme
│ └── web/ # Flask app, API, şablonlar, statikler
├── config/ # Yapılandırma + OUI veritabanı
├── data/ # Tarama sonuçları, uyarılar, geçmiş
├── deploy/ # Dockerfile, docker-compose
├── scripts/run.py # Çapraz platform başlatıcı
├── docs/ # PHASE2_MOBILE.md ve diğer dokümanlar
├── tests/ # Smoke + kural testleri
└── .claude/skills/ # UI/UX ve full-stack Claude Skills
- Root Yetkileri: Port taraması için yönetici yetkileri gerekebilir
- Güvenlik Duvarı: Bazı güvenlik duvarları taramayı engelleyebilir
- Etik Kullanım: Sadece kendi ağınızı tarayın
- Performans: Büyük ağlarda tarama uzun sürebilir
- Credential Güvenliği: Tüm giriş bilgileri AES-256 ile şifrelenir
- Veri Temizleme: Export sırasında hassas veriler otomatik temizlenir
- Güvenli Erişim: SSH anahtar tabanlı kimlik doğrulama önerilir
Neredeyse her zaman ham soket yetkisi eksikliğidir. MyNeS bu durumda ping sweep
- ARP cache'e düşer; bu yöntem ICMP'ye yanıt vermeyen ve bu makineyle hiç
konuşmamış cihazları kaçırır. Durumu
GET /api/capabilitiessöyler.
sudo .venv/bin/python -m mynes # macOS/Linux
# Windows: PowerShell'i "Yönetici olarak çalıştır" ile açın
# Docker: compose dosyası zaten NET_RAW + NET_ADMIN veriyorsudo .venv/bin/python -m mynesNmap'in sistem PATH'inde olduğundan emin olun:
nmap --version- Güvenlik duvarı ayarlarını kontrol edin
- Yönetici yetkileri ile çalıştırın
- Antivirüs yazılımını geçici olarak devre dışı bırakın
- Port
5883'ün kullanımda olmadığından emin olun - Güvenlik duvarı kurallarını kontrol edin
http://127.0.0.1:5883adresini deneyin
- Çevre değişkeni doğru ayarlandı mı kontrol edin
- Salt dosyalarının (.salt, .key_info) var olduğundan emin olun
- Dosya izinlerini kontrol edin (600 olmalı)
- Docker servisinin çalıştığını kontrol edin:
docker info - Kullanıcının Docker grubunda olduğundan emin olun
- Docker socket'inin erişilebilir olduğunu kontrol edin
- Master password doğru girildiğinden emin olun
- Config dizininin yazılabilir olduğunu kontrol edin
- Encryption key dosyalarını silin ve yeniden oluşturun
Sürüm sürüm tüm değişiklikler: CHANGELOG.md
Bu proje MIT lisansı altında lisanslanmıştır.
- GitHub Repository: https://github.com/fxerkan/my_network_scanner
- Documentation: CLAUDE.md
- Turkish README: README.md
- Claude Code: AI-assisted development
- IEEE: OUI database
- Nmap: Network scanning engine
- Flask: Web framework
- Python: Libraries and tools
Bu uygulama FXerkan tarafından "Code more, worry less" mottosu ile geliştirilmiştir - Made with ❤️ & 🤖
ÖNEMLİ : Bu araç sadece eğitim amacıyla ve sadece kendi ağınızdaki cihazlar hakkında bilgi sahibi olmak amacıyla kullanılmalıdır.
DİKKAT : Başkalarının ağlarını izinsiz taramak yasalara aykırıdır, My Network Scanner (MyNeS) bu tip kullanımları önermez ve desteklemez.













