Não tenho certeza se a geolocalização é uma solução completa - nem que você deve bloquear o acesso usando o .htaccess
O fato de alguém estar publicando spam no seu sistema implica que você tem algum código personalizado em execução lá - e a AFAIK não há uma maneira fácil de fazer pesquisas eficientes diretamente do arquivo .htaccess.
Certamente, o uso da geolocalização pode ajudar, mas você só precisa controlar o acesso à funcionalidade que permite a publicação de conteúdo. Há um banco de dados gratuito que você pode executar uma cópia local de disponível aqui .
Se fosse eu, usaria isso como parte de um sistema de pontuação, incorporando também
1) postagens auto-moderadas - exigem que o usuário forneça um endereço de e-mail - quando postarem, não publiquem até clicarem em um link que você enviar para eles
2) moderação administrativa - talvez você não tenha tempo para moderar todas as postagens - mas e quanto a verificar as primeiras N postagens de um usuário em particular?
3) use o spamassassin para identificar spamming posts (Nota: quanto mais mensagens de spam você conseguir capturar (mas obviamente não publicar), melhor isso funcionará)