One working part of the workaround only in JS is to get their time zone and see if it is US or not. This will not work, for example, in South America or Canada, but it will be for most of the world.
You can also capture the user's language to make an assumption.
if (navigator.language) { Lang=navigator.language }
else { Lang=navigator.userLanguage }
Or use a service, for example:
http://gd.geobytes.com/gd?after=-1&variables=GeobytesCountry,GeobytesCity
source
share