Apache has a setting called: 'HostnameLookups' which defaults to 'Off'. If you change this to 'On', then you
can get the fully qualified domain name of the client rather than it's IP address from the environment. Don't do this. This will slow down all requests to your server and increase the load. It will not be able to resolve addresses for which there is no reverse lookup. There is no guarantee that the domain name will bear any resemblance to the country the user is in anyway (ISPs the world over use .net addresses for example).
You could also look at the Accept-language header to get some clue but that's not likely to be much more successful (but at least the overhead will be lower).