Have you ever wondered what is the difference between a spammer and a real user? Well, your logs can show you.
I have not enabled any plugin to avoid spam on this blog and because of that I am being hammered with comment spams! Just as curiosity I went to see how a spammer looks like on my logs.
The first one that looked like legit was from:

If you can’t see, it is from 222.124.x.x with a link to an youtube video on how to make money online. That’s how it looks in the logs:
222.124.x.x - - y "GET /2010/03/thats-why-i-will-not-invest-any-money-in-you/ HTTP/1.0" 200
18293 "http://www.youtube.com/watch?v=Q2kmL3eYxgQ" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50"
222.124.x.x - - y "POST /wp-comments-post.php HTTP/1.0" 302 -
"http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50"
And do you know how a valid user looks like (when posting a comment):
174.16.a.b - - "GET /2010/03/thats-why-i-will-not-invest-any-money-in-you/ HTTP/1.1" 200 18293 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
174.16.a.b - - "GET /wp-content/themes/simplex/style.css HTTP/1.1" 200 18055 "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
174.16.a.b - - "GET /wp-content/themes/simplex/includes/js/suckerfish.js HTTP/1.1" 200 400 "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
174.16.a.b - - "GET /wp-content/themes/simplex/css/default.css HTTP/1.1" 200 4276 "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
174.16.a.b - - "GET /wp-includes/js/jquery/jquery.js?ver=1.3.2 HTTP/1.1" 200 57276 "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
... more logs..
174.16.a.b - - "GET /wp-content/themes/simplex/images/rss.gif HTTP/1.1" 200 621 "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
174.16.a.b - - "POST /wp-comments-post.php HTTP/1.1" 302 - "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
174.16.a.b - -"GET /2010/03/thats-why-i-will-not-invest-any-money-in-you/comment-page-1/ HTTP/1.1" 200 19647 "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Shiira Safari/125"
Are you seeing a big difference here? They first have to download the CSS and all images that compose my template. Second, they have a valid referrer and third, after he posts a comment, he is redirected back to the post he was commenting at.
With the spammer, he just downloads the post itself (not the template, images, scripts, etc), post the comment (see POST /) and goes away. Doesn’t even redirect back to the page. His referrer is also the web site he is spamming for.
I checked a few other spams and they all look the same:
91.214.44.x - - [18/Apr/2010:19:40:24 +0000] "POST /wp-comments-post.php HTTP/1.0" 302 - "http://fseek.me/2010/03/how-to-convince-any-c-developer-to-dump-gcc-and-use-clang/" "Opera/7.11 (Windows NT 5.1; U) [en]"
91.214.44.x - - [18/Apr/2010:19:40:24 +0000] "GET /2010/03/how-to-convince-any-c-developer-to-dump-gcc-and-use-clang/comment-page-1/ HTTP/1.0" 200 41741 "http://fseek.me/2010/03/how-to-convince-any-c-developer-to-dump-gcc-and-use-clang/comment-page-1/#comment-513" "Opera/7.11 (Windows NT 5.1; U) [en]"
123.238.42.a - - [17/Apr/2010:19:04:41 +0000] "GET /2010/03/thats-why-i-will-not-invest-any-money-in-you/comment-page-1/ HTTP/1.1" 200 22491 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
123.238.42.b - - [17/Apr/2010:19:04:46 +0000] "POST /wp-comments-post.php HTTP/1.1" 302 - "http://fseek.me/2010/03/thats-why-i-will-not-invest-any-money-in-you/comment-page-1/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
Always the same behavior. It loads the page, and POST the comment, without even returning to the blog.