Location dependant content served

A client has asked me to build a website that will serve content dependant on the user's location, not dissimilar to a normal multi-lingual website but instead of the user selecting the language themselves, the content is displayed automatically based on their location. Is this possible, and if so what would be the best way to create this functionality?

The website will be in English, but will use 2 versions English (UK) and English (US).

thanks