有没有办法从客户端确定访客国家?

时间:2012-12-17 20:21:00

标签: javascript jquery google-maps geocoding

我正在使用谷歌地图和地理编码API在输入邮政编码后检索用户lat / lng但是我想将邮政编码限制在该用户所在的国家/地区,所以我最终不会多个结果。

有没有办法从客户端可靠地确定访客来源国,可能使用jquery或以某种方式解码用户代理?

我的电话会结束这样的事情:

var country = ???
var postcode = document.getElementById('postcode').value + ', ' + country;

var geocoder = new google.maps.Geocoder();         
geocoder.geocode({ 'address': postcode }, function (results, status) {          
   if (status == google.maps.GeocoderStatus.OK) {  
       ...
   }
});

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用访问者IP地址在GeoIP表中查找其来源。 周围有各种各样的桌子,例如from MaxMind

请注意,如果用户位于代理服务器后面或您无法获取IP,则可能会失败。除此之外,它应该是一种非常可靠的方法,当然取决于您的GeoIP表。

答案 1 :(得分:1)

为了不依赖第三方,您可以使用Google's Loader获取客户的位置。正在使用Here's a great example,正在加载Google Maps API和ClientLocation。