I've wanted to do the same thing in the past to ban troublesome
countries from doing credit card transactions. Some countries like
Russia have many people trying to abuse credit cards and no way
legal recourse for people outside Russia.
I've done this by hand using whois lookups to whois.ripe.net, whois.arin.net and whois.apnic.net which cover everyone. This is time consuming in the extreme though!
Recently I discovered http://ipindex.dragonstar.net/
which is a complete whois lookup on all possible ip addresses. I was contemplating downloading
the info on the site, parsing it to produce a perl module which you could give an IP address to and
it would return a country. This would be instant too!