Geolokalizacja
Każde IP rozwijamy do kraju + ASN/ISP przez MaxMind GeoLite2. Top kraje, mapa świata z choropleth.
Wrzucasz access log z LiteSpeed lub Apache. Po kilku sekundach dostajesz pełny obraz: kto, skąd, czym i jakie ścieżki testował. Bez kont, bez bazy danych, bez śladu po analizie.
Każde IP rozwijamy do kraju + ASN/ISP przez MaxMind GeoLite2. Top kraje, mapa świata z choropleth.
Rozpoznajemy Googlebot, bingbot, AhrefsBot, SemrushBot, GPTBot, ClaudeBot, Perplexity, sqlmap, nikto, curl, python-requests i wiele innych.
/.env, /.git/, /wp-config.php, /xmlrpc.php, /wp-login.php brute-force, /vendor/phpunit, próby /phpmyadmin, próby pobierania backupów.
Per-IP scoring: scanner +25, wrażliwe ścieżki +30, CLI +15, wysoki 4xx +20, wolumen +20, AI/SEO +10. Buckets: Low/Medium/High/Critical.
Choropleth z liczbą zapytań na kraj. Skala logarytmiczna — widać i 5 requestów i 50 000.
Gotowe blokady do skopiowania: .htaccess (Apache/LiteSpeed), Cloudflare WAF expressions, nginx map+deny. Domyślnie preselekcjonuje krytyczne IP i scannery.
Wszystkie tabele sortowalne, filtrowalne i z paginacją. Klik na IP / ścieżkę = kopiuj do schowka. Tooltip pokazuje pełne wartości.
Pełny raport w polskiej wersji jako HTML lub PDF (headless Chrome). 10 sekcji w jednym dokumencie do wysłania klientowi.
Krótki słowniczek pojęć z raportu. Każda nazwa pojawia się w dashboardzie i w eksporcie.
Plik znika natychmiast po zakończeniu analizy. Także przy błędzie. Nie jest replikowany ani backupowany.
Cała aplikacja żyje w pamięci procesu. Wyłączenie serwera = wyzerowanie wszystkiego. Nie ma trwałego storage.
Wynik analizy i raporty PDF/HTML są usuwane po 30 minutach. Background cleaner sprząta co 5 minut.
Apache Combined Log Format — domyślny dla LiteSpeed Web Server i Apache HTTPD.
192.168.1.10 - - [20/May/2026:14:23:34 +0200] "GET /wp-login.php HTTP/1.1" 200 5321 "https://example.com/" "Mozilla/5.0 ..."
Tylko tymczasowo, na czas analizy. Surowy plik kasujemy natychmiast po przetworzeniu. Wynik JSON i raport PDF wygasają po 30 minutach. Nie ma żadnej bazy danych ani historii.
Domyślny limit to 500 MB. Parser działa strumieniowo, więc nawet duże pliki nie wysycają RAM. Jeśli plik jest większy, skompresuj go do .gz przed uploadem (zwykle 10x redukcja).
Aplikacja działa dalej — kraje pokażą się jako 'Unknown / ZZ', ASN będzie pusty. Reszta funkcji (UA, paths, risk) nie wymaga GeoIP.
Tak, ale zalecamy najpierw uruchomienie ich w trybie testowym (np. Cloudflare 'Log' action zamiast 'Block'). Domyślny preselect obejmuje IP z risk score ≥ 61 i scannery — to konserwatywny dobór.
Tak — PDF to renderowany przez headless Chrome ten sam HTML, który widzisz w przeglądarce, dostosowany do druku A4. Pierwszy PDF zajmuje 3-5 sekund (Chrome cold start), kolejne są szybsze.
Tylko request line + status do stdout serwera (standardowy access log Chi). Nie logujemy zawartości plików ani wyników analizy. Production deployment powinien przekierować stdout do systemd journal albo Docker logs.
Gotowy żeby przeanalizować swój log?
Wgraj plik