You can do a decent approximation by looking at what RIRs various /8s have been assigned to, but it's going to be just that--an approximation. To take another approach, you can conclusively determine if someone is connecting via a computer in the States based on ping times and the speed of light, but you can't disprove someone is in the US via this method, nor can you tell whether they're merely using a US-based proxy server with either method.

Essentially, what you're looking for lies somewhere between impossible and flawed; you can trade-off between the two to get less of the other, but you can't eliminate either one.