Emergency server help: get in touch

Access Log Analyzer: Top IPs, URLs, Bots and Floods (Runs in Your Browser)

Open or paste an Apache, Nginx, LiteSpeed, cPanel or DirectAdmin access log and see the top IPs, URLs, user agents, status codes, bots, WordPress login and XML-RPC floods, scanner probes and the busiest minutes. It runs in your browser: the log is never uploaded.

Where it runs
Runs in your browser
Last updated
October 11, 2026

This access log analyzer reads an Apache, Nginx, LiteSpeed, cPanel or DirectAdmin access log and shows you who is hitting the site: top IP addresses, URLs, user agents and status codes, bots, WordPress login and XML-RPC floods, vulnerability scanner probes, and the busiest minutes. Open a .log or .gz file or paste lines. Everything runs in your browser and nothing is uploaded, which matters because access logs contain visitors’ IP addresses.

Loading the tool… It runs in your browser and needs JavaScript.

What the access log analyzer shows

  • Totals: requests, unique IPs, data sent, 4xx and 5xx rates, the share of bots and scripts, the time span and requests per minute.
  • What stands out: WordPress brute force (IPs over your POST threshold on wp-login.php or xmlrpc.php), scanner probes, a high 5xx rate, and a minute with more than five times the average traffic.
  • Top lists of IP addresses, URLs, status codes, bots, user agents, 404 URLs, 5xx URLs, scanner probes, referring sites, virtual hosts and HTTP methods.
  • Busiest minutes, with the top IP in each one, which is usually enough to find what caused a load spike.
  • CSF block commands for flooding IPs, to review and copy, plus a plain-text summary for a ticket or email.

Supported log formats

Any log in the NCSA combined or common format, with or without a leading vhost:port (Apache’s vhost_combined). That covers the default logs of Apache, Nginx (combined/main), LiteSpeed and OpenLiteSpeed, cPanel domlogs and DirectAdmin domain logs. Lines in other formats are counted as “not recognised” and the first few are shown, so you can see what was skipped.

ServerWhere the access logs are
cPanel/var/log/apache2/domlogs/DOMAIN and DOMAIN-ssl_log; archives in /home/USER/logs/
DirectAdmin/var/log/httpd/domains/DOMAIN.log
Debian/Ubuntu Apache/var/log/apache2/access.log
Nginx/var/log/nginx/access.log

For every other log on these systems, see Linux server log file locations.

Get the log onto your computer

# Last 50,000 lines of one site's log, compressed (cPanel example)
tail -n 50000 /var/log/apache2/domlogs/example.com-ssl_log | gzip > /root/example-ssl.log.gz
# then download it with scp or SFTP:
scp root@server:/root/example-ssl.log.gz .

.gz files are decompressed in the browser (current Chrome, Edge, Firefox and Safari). Delete the copy on the server when you are done.

How we tested it

On 11 October 2026 we ran the analyzer in Chromium with real access logs from our three lab servers (a cPanel domlog with 1,384 lines, a Debian Apache log with 4,295 lines over 2.3 days, and a DirectAdmin domain log), with a generated log containing a WordPress login flood, an XML-RPC flood and scanner probes (plain and .gz), and with pasted lines. It found both flooding IPs, flagged probes for /.env, /.git/config and eval-stdin.php, and on the real cPanel log showed 16 scanner IPs and a minute with 277 requests. A generated 500,000-line log (69 MB, 7 MB gzipped) took 3.5 seconds and about 200 MB of browser memory.

Reading the results

WordPress login and XML-RPC floods

Dozens of POSTs to wp-login.php or xmlrpc.php from one IP is a password-guessing attack. The CSF commands the tool prints are a starting point: check each IP first. If the site is behind Cloudflare or another proxy, the log may show the proxy’s IPs, and blocking those blocks real visitors; see real visitor IPs behind Cloudflare. For a lasting fix, see fail2ban vs CSF.

Scanner probes

Requests for /.env, /.git/, wp-config.php backups or phpMyAdmin come from automated scanners. A 404 is the right answer. A 200 means the file exists and is readable: remove it or block it at once.

Bots

Bots are grouped by user agent, which anyone can fake. To check whether a “Googlebot” is real, run host IP: Google’s crawlers resolve to googlebot.com or google.com, and the name resolves back to the same IP.

Busiest minutes

Match the busiest minute against the server’s load history (atop and sar) to see whether the traffic caused the slowdown. If one IP dominates that minute, it is your main suspect.

On the command line instead

# Top 10 IPs
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head
# Top 10 URLs with a 404
awk '$9 == 404 {print $7}' access.log | sort | uniq -c | sort -rn | head
# POSTs to wp-login.php per IP
grep 'POST /wp-login.php' access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head

These assume a plain combined log without a vhost prefix. For regular reports, use GoAccess. To check every site on a server at once, use our web log top IPs script. To have an error line explained, use the AI log analyzer.

Frequently asked questions

Is my log file uploaded to your server?

No. The analyzer runs entirely in your browser with JavaScript; the file is read locally and nothing is sent anywhere. You can disconnect from the internet after the page has loaded and it still works.

Which log formats does the access log analyzer support?

The combined and common log formats, with or without a vhost:port prefix. That covers the default access logs of Apache, Nginx, LiteSpeed, OpenLiteSpeed, cPanel domlogs and DirectAdmin domain logs.

Can it read .gz log files?

Yes, in current browsers that support DecompressionStream (Chrome, Edge, Firefox and Safari). Older browsers ask you to unzip the file first.

How big a log can it handle?

In our test, a 500,000-line log (69 MB uncompressed) took 3.5 seconds in Chromium. Files are read in chunks; very large files are limited by your computer’s memory.

How do I find who is attacking my WordPress login?

Open the site’s access log in the analyzer. IPs with many POST requests to wp-login.php or xmlrpc.php are listed under WordPress login and XML-RPC floods, with CSF block commands you can review and copy.

Share this tool

Free website test

Is your website set up right?

Check SSL, security headers, redirects, robots.txt, sitemap, llms.txt and security.txt in one test. It takes about 30 seconds.