http://die-spammers.com/ [R=301,L]Put this code in your .htaccess file.
Change "your-signup-page.php" to your signup page slug. For example, if your signup page is http://domain.com/register.php, then, change it to "register.php". if your signup page is http://domain.com/register, then, change it to "register"
Change "your-domain" to the domain of your blog.
Optionally, change "die-spammers.com" to whatever page you wish to send the spammers.
What does this code do?
It detect any POST requests (submitting a form) for your signup page, that haven’t been referred by any of your other pages, or have an empty user agent string (identifying the software making the request), and sends them to endless hell.
This code finally solved my problem. From the log, I can see the requirsts from spammers for my register page gets 0 bytes loaded, bandwidth saved. Spammers loss the war.