Rack of Ethernet switches.

Visualizing Log Patterns with Color

Nginx and Apache Logs in Color

Web server logs reveal patterns of activity by web crawlers. Some are indexing crawlers operated by search engines, some are mysterious. Another pattern is systematic blind searches for vulnerable server-side executables or other configuration problems. The pattern you want to see is the interested user who follows some path through the hyperlinks on your site, taking time to read the pages.

Maybe we could use color to help spot these patterns?

Maybe...

First, let's look at the result, then the explanation comes later. Here are the most recent client requests, starting most recent first. Your request for this page won't appear there as it isn't complete by the time this page was automatically generated with PHP. But if you reload the page you should see your initial request near the top.

88.203.186.24 BG, Bulgaria 07/Feb/2025:18:15:04 /cybersecurity/
24.199.82.195 US, United States 07/Feb/2025:18:15:04 /travel/china/guangzhou-1.html?s=mb
84.247.190.244 NO, Norway 07/Feb/2025:18:15:04 /travel/china/guangzhou-1.html?s=mb
130.61.142.152 DE, Germany 07/Feb/2025:18:15:04 /travel/china/guangzhou-1.html?s=mb
77.174.198.11 NL, Netherlands 07/Feb/2025:18:15:04 /travel/china/guangzhou-1.html?s=mb
46.4.102.174 DE, Germany 07/Feb/2025:18:15:04 /travel/china/guangzhou-1.html?s=mb
138.199.149.193 EU, Europe 07/Feb/2025:18:15:04 /travel/china/guangzhou-1.html?s=mb
71.135.1.217 US, United States 07/Feb/2025:18:15:04 /travel/china/guangzhou-1.html?s=mb
57.128.95.174 BE, Belgium 07/Feb/2025:18:15:03 /travel/china/guangzhou-1.html?s=mb
85.208.96.209 Unknown 07/Feb/2025:18:15:03 /travel/japan/ise/
67.170.109.60 US, United States 07/Feb/2025:18:15:03 /travel/china/guangzhou-1.html?s=mb
96.249.241.90 US, United States 07/Feb/2025:18:15:03 /travel/china/guangzhou-1.html?s=mb
84.246.124.37 DE, Germany 07/Feb/2025:18:15:02 /travel/china/guangzhou-1.html?s=mb
147.182.159.4 US, United States 07/Feb/2025:18:15:02 /travel/china/guangzhou-1.html?s=mb
3.75.250.55 US, United States 07/Feb/2025:18:15:02 /travel/china/guangzhou-1.html?s=mb
159.69.72.33 DE, Germany 07/Feb/2025:18:15:02 /travel/china/guangzhou-1.html?s=mb
70.50.115.121 CA, Canada 07/Feb/2025:18:15:02 /travel/china/guangzhou-1.html?s=mb
45.79.180.50 US, United States 07/Feb/2025:18:15:01 /travel/china/guangzhou-1.html?s=mb
130.162.166.208 US, United States 07/Feb/2025:18:15:01 /travel/china/guangzhou-1.html?s=mb
23.88.72.209 US, United States 07/Feb/2025:18:15:01 /travel/china/guangzhou-1.html?s=mb
79.219.53.160 DE, Germany 07/Feb/2025:18:15:01 /travel/china/guangzhou-1.html?s=mb
193.30.122.175 DE, Germany 07/Feb/2025:18:15:01 /travel/china/guangzhou-1.html?s=mb
18.234.147.227 US, United States 07/Feb/2025:18:15:01 /travel/china/guangzhou-1.html?s=mb
23.81.164.200 US, United States 07/Feb/2025:18:15:01 /travel/china/guangzhou-1.html?s=mb
51.77.118.209 FR, France 07/Feb/2025:18:15:00 /travel/china/guangzhou-1.html?s=mb
167.71.128.79 US, United States 07/Feb/2025:18:15:00 /travel/china/guangzhou-1.html?s=mb
195.201.1.28 DE, Germany 07/Feb/2025:18:15:00 /travel/china/guangzhou-1.html?s=mb
51.210.99.95 FR, France 07/Feb/2025:18:14:59 /travel/china/guangzhou-1.html?s=mb
57.128.95.181 BE, Belgium 07/Feb/2025:18:14:59 /travel/china/guangzhou-1.html?s=mb
45.43.14.223 US, United States 07/Feb/2025:18:14:59 /travel/china/guangzhou-1.html?s=mb
176.58.112.4 GB, United Kingdom 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
107.199.111.104 US, United States 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
47.206.212.96 US, United States 07/Feb/2025:18:14:58 /travel/china/li-river.html?s=mb
218.212.191.249 SG, Singapore 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
54.187.192.246 US, United States 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
167.235.249.129 US, United States 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
76.241.26.223 US, United States 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
80.240.31.185 GR, Greece 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
5.161.74.177 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
176.28.55.227 DE, Germany 07/Feb/2025:18:14:58 /travel/china/guangzhou-1.html?s=mb
95.216.33.203 FI, Finland 07/Feb/2025:18:14:57 /travel/china/guangzhou-1.html?s=mb
5.75.184.216 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:57 /travel/china/guangzhou-1.html?s=mb
162.248.4.11 US, United States 07/Feb/2025:18:14:57 /travel/china/guangzhou-1.html?s=mb
143.198.230.84 US, United States 07/Feb/2025:18:14:57 /travel/china/guangzhou-1.html?s=mb
49.12.191.254 IN, India 07/Feb/2025:18:14:57 /travel/china/guangzhou-1.html?s=mb
185.250.56.35 CH, Switzerland 07/Feb/2025:18:14:56 /travel/china/guangzhou-1.html?s=mb
57.128.118.171 BE, Belgium 07/Feb/2025:18:14:56 /travel/china/guangzhou-1.html?s=mb
188.242.238.169 RU, Russian Federation 07/Feb/2025:18:14:56 /travel/china/guangzhou-1.html?s=mb
217.122.55.84 NL, Netherlands 07/Feb/2025:18:14:56 /travel/china/guangzhou-1.html?s=mb
5.189.170.21 DE, Germany 07/Feb/2025:18:14:56 /travel/china/guangzhou-1.html?s=mb
57.128.95.181 BE, Belgium 07/Feb/2025:18:14:56 /travel/china/guangzhou-1.html?s=mb
147.135.81.36 US, United States 07/Feb/2025:18:14:56 /travel/china/guangzhou-1.html?s=mb
88.99.233.240 DE, Germany 07/Feb/2025:18:14:55 /travel/china/guangzhou-1.html?s=mb
84.50.85.105 EE, Estonia 07/Feb/2025:18:14:55 /travel/china/guangzhou-1.html?s=mb
108.202.149.70 US, United States 07/Feb/2025:18:14:55 /travel/china/guangzhou-1.html?s=mb
91.2.126.161 DE, Germany 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
5.78.68.112 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
34.162.186.242 US, United States 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
5.75.243.239 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
185.206.232.42 NL, Netherlands 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
195.201.195.102 DE, Germany 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
172.233.154.12 US, United States 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
57.128.95.173 BE, Belgium 07/Feb/2025:18:14:54 /travel/china/guangzhou-1.html?s=mb
49.12.85.115 IN, India 07/Feb/2025:18:14:53 /travel/china/guangzhou-1.html?s=mb
57.128.95.181 BE, Belgium 07/Feb/2025:18:14:53 /travel/china/guangzhou-1.html?s=mb
52.167.144.206 US, United States 07/Feb/2025:18:14:53 /travel/russia/aiha.html
51.158.97.108 FR, France 07/Feb/2025:18:14:53 /travel/china/guangzhou-1.html?s=mb
128.199.14.189 SG, Singapore 07/Feb/2025:18:14:53 /travel/china/guangzhou-1.html?s=mb
88.99.213.22 DE, Germany 07/Feb/2025:18:14:52 /travel/china/guangzhou-1.html?s=mb
49.12.99.205 IN, India 07/Feb/2025:18:14:52 /travel/china/guangzhou-1.html?s=mb
204.238.213.138 US, United States 07/Feb/2025:18:14:52 /travel/china/guangzhou-1.html?s=mb
36.230.21.218 TW, Taiwan 07/Feb/2025:18:14:52 /travel/china/guangzhou-1.html?s=mb
207.216.169.45 CA, Canada 07/Feb/2025:18:14:52 /travel/china/guangzhou-1.html?s=mb
54.188.162.139 US, United States 07/Feb/2025:18:14:52 /travel/china/guangzhou-1.html?s=mb
159.89.120.57 CA, Canada 07/Feb/2025:18:14:51 /travel/china/guangzhou-1.html?s=mb
192.155.85.104 US, United States 07/Feb/2025:18:14:51 /travel/china/guangzhou-1.html?s=mb
49.13.7.227 IN, India 07/Feb/2025:18:14:51 /travel/china/guangzhou-1.html?s=mb
152.53.52.66 US, United States 07/Feb/2025:18:14:51 /travel/china/guangzhou-1.html?s=mb
23.88.112.152 US, United States 07/Feb/2025:18:14:51 /travel/china/guangzhou-1.html?s=mb
37.187.74.178 FR, France 07/Feb/2025:18:14:50 /travel/china/guangzhou-1.html?s=mb
138.197.110.222 US, United States 07/Feb/2025:18:14:50 /travel/china/guangzhou-1.html?s=mb
138.201.19.143 DE, Germany 07/Feb/2025:18:14:50 /travel/china/guangzhou-1.html?s=mb
18.138.81.13 US, United States 07/Feb/2025:18:14:50 /travel/china/guangzhou-1.html?s=mb
216.24.162.126 US, United States 07/Feb/2025:18:14:49 /travel/china/guangzhou-1.html?s=mb
5.161.210.238 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:49 /travel/china/guangzhou-1.html?s=mb
134.22.73.80 CA, Canada 07/Feb/2025:18:14:49 /travel/china/guangzhou-1.html?s=mb
52.167.144.156 US, United States 07/Feb/2025:18:14:49 /travel/greece/kos/
38.242.215.131 US, United States 07/Feb/2025:18:14:49 /travel/china/guangzhou-1.html?s=mb
174.95.104.180 CA, Canada 07/Feb/2025:18:14:49 /travel/china/guangzhou-1.html?s=mb
71.246.109.155 US, United States 07/Feb/2025:18:14:49 /travel/china/guangzhou-1.html?s=mb
212.69.35.159 GB, United Kingdom 07/Feb/2025:18:14:49 /travel/china/guangzhou-1.html?s=mb
107.130.231.17 US, United States 07/Feb/2025:18:14:48 /travel/china/guangzhou-1.html?s=mb
134.122.76.6 US, United States 07/Feb/2025:18:14:48 /travel/china/guangzhou-1.html?s=mb
23.254.165.3 US, United States 07/Feb/2025:18:14:48 /travel/china/guangzhou-1.html?s=mb
73.164.13.49 US, United States 07/Feb/2025:18:14:48 /travel/china/guangzhou-1.html?s=mb
85.114.140.116 DE, Germany 07/Feb/2025:18:14:47 /travel/china/guangzhou-1.html?s=mb
20.83.140.166 US, United States 07/Feb/2025:18:14:47 /travel/china/guangzhou-1.html?s=mb
212.52.0.110 NL, Netherlands 07/Feb/2025:18:14:47 /travel/china/guangzhou-1.html?s=mb
90.250.9.255 GB, United Kingdom 07/Feb/2025:18:14:47 /travel/china/guangzhou-1.html?s=mb
51.161.119.157 FR, France 07/Feb/2025:18:14:47 /travel/china/guangzhou-1.html?s=mb
178.63.49.103 DE, Germany 07/Feb/2025:18:14:47 /travel/china/guangzhou-1.html?s=mb
15.235.57.238 US, United States 07/Feb/2025:18:14:46 /travel/china/guangzhou-1.html?s=mb
45.79.44.115 US, United States 07/Feb/2025:18:14:46 /travel/china/guangzhou-1.html?s=mb
107.189.5.190 LU, Luxembourg 07/Feb/2025:18:14:45 /travel/china/guangzhou-1.html?s=mb
185.236.240.137 PL, Poland 07/Feb/2025:18:14:45 /travel/china/guangzhou-1.html?s=mb
132.145.173.44 US, United States 07/Feb/2025:18:14:45 /travel/china/guangzhou-1.html?s=mb
5.78.41.244 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:45 /travel/china/guangzhou-1.html?s=mb
77.48.28.218 CZ, Czech Republic 07/Feb/2025:18:14:45 /travel/china/guangzhou-1.html?s=mb
76.103.14.101 US, United States 07/Feb/2025:18:14:45 /travel/china/guangzhou-1.html?s=mb
104.168.122.240 US, United States 07/Feb/2025:18:14:44 /travel/china/guangzhou-1.html?s=mb
5.75.251.148 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:44 /travel/china/guangzhou-1.html?s=mb
82.65.91.105 FR, France 07/Feb/2025:18:14:44 /travel/china/guangzhou-1.html?s=mb
148.251.28.156 DE, Germany 07/Feb/2025:18:14:44 /travel/china/guangzhou-1.html?s=mb
57.128.118.108 BE, Belgium 07/Feb/2025:18:14:44 /travel/china/guangzhou-1.html?s=mb
64.33.113.24 US, United States 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
178.62.64.18 GB, United Kingdom 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
159.69.180.223 DE, Germany 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
199.192.16.81 US, United States 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
46.4.252.37 DE, Germany 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
141.95.205.35 GB, United Kingdom 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
46.4.156.213 DE, Germany 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
84.239.43.42 GB, United Kingdom 07/Feb/2025:18:14:43 /contact.html
64.227.7.118 US, United States 07/Feb/2025:18:14:43 /travel/china/guangzhou-1.html?s=mb
159.65.182.92 US, United States 07/Feb/2025:18:14:42 /travel/china/guangzhou-1.html?s=mb
143.198.102.111 US, United States 07/Feb/2025:18:14:42 /travel/china/guangzhou-1.html?s=mb
212.47.75.125 GB, United Kingdom 07/Feb/2025:18:14:42 /travel/china/guangzhou-1.html?s=mb
84.239.43.42 GB, United Kingdom 07/Feb/2025:18:14:42 /blog/2025/01/automating-changes-across-thousands-of-files.html
65.108.255.89 US, United States 07/Feb/2025:18:14:42 /travel/china/guangzhou-1.html?s=mb
78.46.181.125 DE, Germany 07/Feb/2025:18:14:42 /travel/china/guangzhou-1.html?s=mb
65.109.234.6 US, United States 07/Feb/2025:18:14:41 /travel/china/guangzhou-1.html?s=mb
116.202.208.112 IN, India 07/Feb/2025:18:14:41 /travel/china/guangzhou-1.html?s=mb
84.239.43.42 GB, United Kingdom 07/Feb/2025:18:14:41 /blog/all-reverse.html
167.71.23.178 US, United States 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
193.135.10.216 CH, Switzerland 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
139.60.163.204 US, United States 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
65.21.62.142 US, United States 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
93.93.128.11 GB, United Kingdom 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
184.171.210.129 CA, Canada 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
84.239.43.42 GB, United Kingdom 07/Feb/2025:18:14:40 /blog/
51.77.122.82 FR, France 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
185.233.107.67 DE, Germany 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
51.222.205.87 FR, France 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
57.128.95.175 BE, Belgium 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
23.137.251.14 Unknown 07/Feb/2025:18:14:40 /travel/china/guangzhou-1.html?s=mb
79.117.135.32 RO, Romania 07/Feb/2025:18:14:39 /travel/china/guangzhou-1.html?s=mb
74.14.190.233 CA, Canada 07/Feb/2025:18:14:39 /travel/china/guangzhou-1.html?s=mb
146.190.232.59 US, United States 07/Feb/2025:18:14:39 /travel/china/guangzhou-1.html?s=mb
159.69.208.162 DE, Germany 07/Feb/2025:18:14:39 /travel/china/guangzhou-1.html?s=mb
84.239.43.42 GB, United Kingdom 07/Feb/2025:18:14:39 /travel/syria/palmyra.html
103.184.175.1 Unknown 07/Feb/2025:18:14:39 /travel/china/guangzhou-1.html?s=mb
35.209.31.96 US, United States 07/Feb/2025:18:14:39 /travel/china/guangzhou-1.html?s=mb
88.198.1.113 DE, Germany 07/Feb/2025:18:14:39 /travel/china/guangzhou-1.html?s=mb
137.184.182.149 US, United States 07/Feb/2025:18:14:38 /travel/china/guangzhou-1.html?s=mb
162.19.29.212 US, United States 07/Feb/2025:18:14:38 /travel/china/guangzhou-1.html?s=mb
164.92.127.252 US, United States 07/Feb/2025:18:14:38 /travel/china/guangzhou-1.html?s=mb
207.172.217.131 US, United States 07/Feb/2025:18:14:38 /travel/china/guangzhou-1.html?s=mb
44.233.164.55 US, United States 07/Feb/2025:18:14:38 /travel/china/guangzhou-1.html?s=mb
185.183.159.222 DE, Germany 07/Feb/2025:18:14:38 /travel/china/guangzhou-1.html?s=mb
90.14.41.212 FR, France 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
136.62.158.195 US, United States 07/Feb/2025:18:14:37 /travel/mexico/leon-trotsky.html?s=mb
69.207.181.246 US, United States 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
5.161.122.253 IR, Iran, Islamic Republic of 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
66.29.136.91 US, United States 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
208.85.21.104 US, United States 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
65.108.104.219 US, United States 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
203.129.31.244 AU, Australia 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
71.224.200.62 US, United States 07/Feb/2025:18:14:37 /travel/china/guangzhou-1.html?s=mb
141.95.205.46 GB, United Kingdom 07/Feb/2025:18:14:36 /travel/china/guangzhou-1.html?s=mb
91.194.60.179 FR, France 07/Feb/2025:18:14:36 /travel/china/guangzhou-1.html?s=mb
34.27.162.185 US, United States 07/Feb/2025:18:14:36 /travel/china/guangzhou-1.html?s=mb
57.128.95.174 BE, Belgium 07/Feb/2025:18:14:36 /travel/china/guangzhou-1.html?s=mb
159.69.74.247 DE, Germany 07/Feb/2025:18:14:35 /travel/china/guangzhou-1.html?s=mb
149.202.69.200 FR, France 07/Feb/2025:18:14:35 /travel/china/guangzhou-1.html?s=mb
207.154.236.101 DE, Germany 07/Feb/2025:18:14:34 /travel/china/guangzhou-1.html?s=mb
94.130.174.59 DE, Germany 07/Feb/2025:18:14:34 /travel/japan/kofun/empress-jingu.html?s=mb
95.216.199.37 FI, Finland 07/Feb/2025:18:14:34 /travel/china/guangzhou-1.html?s=mb
152.70.243.53 US, United States 07/Feb/2025:18:14:34 /travel/china/guangzhou-1.html?s=mb
23.188.56.97 Unknown 07/Feb/2025:18:14:34 /travel/china/guangzhou-1.html?s=mb
213.122.195.13 GB, United Kingdom 07/Feb/2025:18:14:34 /travel/china/guangzhou-1.html?s=mb
61.64.1.47 TW, Taiwan 07/Feb/2025:18:14:33 /travel/china/guangzhou-1.html?s=mb
173.67.14.121 US, United States 07/Feb/2025:18:14:32 /travel/china/guangzhou-1.html?s=mb
136.243.202.252 DE, Germany 07/Feb/2025:18:14:32 /travel/china/guangzhou-1.html?s=mb
66.148.120.148 US, United States 07/Feb/2025:18:14:32 /travel/china/guangzhou-1.html?s=mb
76.241.26.223 US, United States 07/Feb/2025:18:14:31 /travel/china/guangzhou-1.html?s=mb
65.109.159.22 US, United States 07/Feb/2025:18:14:31 /travel/china/guangzhou-1.html?s=mb
176.9.136.181 DE, Germany 07/Feb/2025:18:14:31 /travel/china/guangzhou-1.html?s=mb
161.35.87.199 US, United States 07/Feb/2025:18:14:31 /travel/china/guangzhou-1.html?s=mb
185.121.168.233 NZ, New Zealand 07/Feb/2025:18:14:31 /travel/china/guangzhou-1.html?s=mb
176.9.185.230 DE, Germany 07/Feb/2025:18:14:31 /travel/china/guangzhou-1.html?s=mb
143.244.177.66 US, United States 07/Feb/2025:18:14:31 /travel/china/guangzhou-1.html?s=mb
192.248.152.224 US, United States 07/Feb/2025:18:14:30 /travel/china/guangzhou-1.html?s=mb
85.215.117.248 DE, Germany 07/Feb/2025:18:14:30 /travel/china/guangzhou-1.html?s=mb
65.108.75.113 US, United States 07/Feb/2025:18:14:30 /travel/china/guangzhou-1.html?s=mb
65.109.67.55 US, United States 07/Feb/2025:18:14:30 /travel/china/guangzhou-1.html?s=mb
143.198.237.161 US, United States 07/Feb/2025:18:14:30 /travel/china/guangzhou-1.html?s=mb
65.109.144.230 US, United States 07/Feb/2025:18:14:30 /travel/china/guangzhou-1.html?s=mb
157.90.225.212 US, United States 07/Feb/2025:18:14:30 /travel/china/guangzhou-1.html?s=mb
65.109.49.87 US, United States 07/Feb/2025:18:14:29 /travel/china/guangzhou-1.html?s=mb

Here's what's going on.

Each line above is a request from a client, extracted from Nginx's /var/www/logs/httpd-access.log file. The client IP address, timestamp, and requested path were selected with awk and the client IP address converted to a country if possible with geoiplookup.

Geolocate IP

You can use a service such as Abstract's IP geolocation to check if the conversion was successful, or if the client IP address is the exit portal of a VPN.

The first 3 octets or first 24 bits of the IP address are used to specify the hue, with chroma at 75% and intensity at 100%. The resulting red, green, and blue values are scaled to the range of 0-255 and printed as two-character hexadecimal in an HTML style string.

Low-numbered /8 networks appear as red, 20.0.0.0/8 through 40.0.0.0/8 are orange shifting to yellow, 50.0.0.0/8 through 110.0.0.0/8 are shades of green, the /16 networks 130.0.0.0/16 through about 180.0.0.0/16 are shades of blue, then it's shades of purple into magenta for the /24 networks 192.0.0.0/24 and up through 223.255.255.0/24.

The HTML file on the server has a line where PHP uses passthru() to call the following shell script:

#!/bin/sh

# Initial pipeline:
# tail		Just the last 200 (or slightly less after the grep)
# grep		... just the requests out of that
# cat | sort	... put into reverse order
# sed		... remove the quotes and square brackets
# awk		... print the IP address twice, timestamp, and requested path
# sed		... remove the first 3 dots to split first version of IP
#			address into octets, and remove any characters that
#			could cause trouble when inserted into this page
# I need to use the client IP address, field #5 at that point, to call
# geoiplookup.  So, send the initial pipeline into a while loop that
# assigns variables, sets a new variable, and then echoes the resulting
# collection into awk.
tail -200 /var/www/logs/access_log |
	grep 'GET.*200' |
	cat -n | sort -nr |
	sed -e 's/"/ /g' -e 's/\[//g' -e 's/\]//g' |
	awk '{print $2, $2, $5, $8}' |
	sed -e 's/\./ /' -e 's/\./ /' -e 's/\./ /' -e 's/[<>]//g' |
	while read IP1 IP2 IP3 IP4 CLIENTIP TIMESTAMP URL
	do
		COUNTRY=$( geoiplookup $CLIENTIP |
				sed 's/.*Edition: //' |
				sed 's/IP Address not found/Unknown/' )
		echo $IP1 $IP2 $IP3 $IP4 $CLIENTIP $COUNTRY $TIMESTAMP $URL |
		awk '{
			ip1 = $1;
			ip2 = $2;
			ip3 = $3;
			chroma = 0.75;
			hue = 6*(ip1*255*255 + ip2*255 + ip3)/(255*255*255);
			if (hue%2 > 1) {
				x = chroma*(1.0 - (hue%2 - 1));
			} else {
				x = chroma*(1.0 - (1 - hue%2));
			}
			if (hue < 1.0) {
				r = chroma;
				g = x;
				b = 0;
			} else if (hue < 2.0) {
				r = x;
				g = chroma;
				b = 0;
			} else if (hue < 3.0) {
				r = 0;
				g = chroma;
				b = x;
			} else if (hue < 4.0) {
				r = 0;
				g = x;
				b = chroma;
			} else if (hue < 5.0) {
				r = x;
				g = 0;
				b = chroma;
			} else {
				r = chroma;
				g = 0;
				b = x;
			}
			r = (r + 0.25)*255;
			g = (g + 0.25)*255;
			b = (b + 0.25)*255;

			printf("<div class=\"col-12 textleft\" ");
			printf("style=\"color:#000; background:#%02x%02x%02x;\"> ", r, g, b);
			for (i = 5; i <= NF; i++) {
				printf("%s ", $i);
			}
			printf("</div>\n");
		}'
	done 

Other Pages