So it was a little after midnight here when I finished putting the final touches on some basic forum moderation tools...basically the ability to mute players. I'd warned skipper this morning when I left for work that if he continued acting up, I'd mute him. Naturally, he was thus the first person I muted. This was 30 minutes ago.
Then I noticed skipper had been online for the past 5 hours or so, yet hadn't made any forum posts. Kind of strange for a spammer, no? I also noticed he's pretty high level, top 10 in fact. So I decided to run a little investigation.
I changed the captcha page only for skipper to say "navigate to the documentation to prove you are not a script-using cheater", instead of the usual recaptcha form. This resulted in an interesting pattern:
95.76.230.84 - - [26/Aug/2011:01:03:57 -0400] "GET /captcha/train/25/54211 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:03:57 -0400] "GET /showroom HTTP/1.1" 200 63388 95.76.230.84 - - [26/Aug/2011:01:03:58 -0400] "GET /train HTTP/1.1" 200 40374 95.76.230.84 - - [26/Aug/2011:01:04:00 -0400] "GET /showroom HTTP/1.1" 200 57075 95.76.230.84 - - [26/Aug/2011:01:04:01 -0400] "GET /train/25/35530 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:01 -0400] "GET /captcha/train/25/35530 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:02 -0400] "GET /train HTTP/1.1" 200 40373 95.76.230.84 - - [26/Aug/2011:01:04:05 -0400] "GET /train/25/45880 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:06 -0400] "GET /captcha/train/25/45880 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:07 -0400] "GET /train HTTP/1.1" 200 40343 95.76.230.84 - - [26/Aug/2011:01:04:10 -0400] "GET /train/25/61751 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:10 -0400] "GET /captcha/train/25/61751 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:11 -0400] "GET /train HTTP/1.1" 200 40373 95.76.230.84 - - [26/Aug/2011:01:04:14 -0400] "GET /train/25/63960 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:14 -0400] "GET /captcha/train/25/63960 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:16 -0400] "GET /train HTTP/1.1" 200 40343 95.76.230.84 - - [26/Aug/2011:01:04:19 -0400] "GET /train/25/7357 HTTP/1.1" 302 437 95.76.230.84 - - [26/Aug/2011:01:04:19 -0400] "GET /captcha/train/25/7357 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:20 -0400] "GET /train HTTP/1.1" 200 40343 95.76.230.84 - - [26/Aug/2011:01:04:23 -0400] "GET /train/25/27175 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:24 -0400] "GET /captcha/train/25/27175 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:25 -0400] "GET /train HTTP/1.1" 200 40373 95.76.230.84 - - [26/Aug/2011:01:04:28 -0400] "GET /train/25/62491 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:28 -0400] "GET /captcha/train/25/62491 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:30 -0400] "GET /train HTTP/1.1" 200 40373 95.76.230.84 - - [26/Aug/2011:01:04:32 -0400] "GET /train/25/45439 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:33 -0400] "GET /captcha/train/25/45439 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:34 -0400] "GET /train HTTP/1.1" 200 40373 95.76.230.84 - - [26/Aug/2011:01:04:37 -0400] "GET /train/25/60071 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:37 -0400] "GET /captcha/train/25/60071 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:39 -0400] "GET /train HTTP/1.1" 200 40373 95.76.230.84 - - [26/Aug/2011:01:04:41 -0400] "GET /train/25/58723 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:42 -0400] "GET /captcha/train/25/58723 HTTP/1.1" 200 6594 95.76.230.84 - - [26/Aug/2011:01:04:43 -0400] "GET /train HTTP/1.1" 200 40373 95.76.230.84 - - [26/Aug/2011:01:04:46 -0400] "GET /train/25/37743 HTTP/1.1" 302 438 95.76.230.84 - - [26/Aug/2011:01:04:46 -0400] "GET /captcha/train/25/37743 HTTP/1.1" 200 6594
So I locked and reset his bot. And now I'm getting this:
95.76.230.84 - - [26/Aug/2011:01:09:07 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:10 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:14 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:17 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:21 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:24 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:28 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:31 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:35 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:38 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:42 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:45 -0400] "GET /showroom HTTP/1.1" 200 40544 95.76.230.84 - - [26/Aug/2011:01:09:45 -0400] "GET /train HTTP/1.1" 200 8333 95.76.230.84 - - [26/Aug/2011:01:09:47 -0400] "GET /showroom HTTP/1.1" 200 59115 95.76.230.84 - - [26/Aug/2011:01:09:49 -0400] "GET /train HTTP/1.1" 200 8330 95.76.230.84 - - [26/Aug/2011:01:09:52 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:56 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:09:59 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:03 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:06 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:09 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:13 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:16 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:20 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:23 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:27 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:30 -0400] "GET /train HTTP/1.1" 200 8332 95.76.230.84 - - [26/Aug/2011:01:10:34 -0400] "GET /train HTTP/1.1" 200 8332
Cute, it even goes to the showroom every now and then.
Don't let the door hit your ass on the way out.