Do you have a list of countries that you want to block access to your site? Have you tried adding IP numbers into your .htaccess file only to generate a HUGE .htaccess file and a neverending stream of IP numbers? How about using mod_geoip!!
mod_geoip is a module that can be compiled into Apache on build. Generally shared hosting providers will not have this module loaded, however if you are on a VPS or a Dedicated Server you can compile this module into Apache.
Then just do the following
Edit your .htaccess file
SetEnvIF GEOIP_COUNTRY_CODE CN BlockThese
SetEnvIF GEOIP_COUNTRY_CODE TR BlockThese
# Add more countries here
Deny from env=BlockThese
A full list of 2 digit country codes can be found here: http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm
The above listed in the example are "CN = China" and "TR = Turkey"
You could also just reverse the .htaccess to make it ALLOW and enter US or UK as the country code.