I think manual approval is the way to go. Screening by IP never worked for me. Screening by country is pretty coarse. Most go through servers in the US because they know folks filter by country. Email is a bit different than forum registration. I actually had me email service turn off spam filtering. Whatever they were using I had no control over and it was too tight. I had important email go to the spam box on their server. Since I use outlook rather than their web app, I never knew when an important email was filtered into spam. I now do my own spam filtering locally. I key on the new TLDs that nobody legit uses. For .com, .org, and .info, have to filter by the full domain name. I'd say I have to add about a half dozen to the list each day.
I can't recall if this forum uses email validation for new accounts, but that is always helpful. Many bots are not sophisticated enough to complete an email verification process. With a fourm like XenForo, you are limited to the capabilities the forum supports.
Thanks,
Jack