Bueno, como hacerse, se hace así
en tu htaccess
Código Apache:
Ver original<Limit GET HEAD POST>
order allow,deny
# aqui las ip denegadas
# ejemplo:
# deny from 192.168.1.23
# ahora se permiten todas las demás
allow from all
</LIMIT>
el tema es que la lista de ips de usa es un archivo de mas de 1MB, y no sé en que medida puede afectar el rendimiento, tampoco se que pasa si el visitante NO está en USA, pero navega a través de un proxy que SI está en USA.
El método que te puse lo usé (pero no en el caso de todo USA, sino para unas 20 ip que me venian molestando), y funciona ok
Probablemente a nivel servidor DNS se pueda hacer de otra manera.
Te dejo el link a un zip que tengo preparado que contiene la lista de ips a bloquear para USA
http://foros.emprear.com/zip/bloquear-ip-usa.zip
Saludos