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

我使用谷歌地图和地理编码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) { ... } }); 

有什么想法吗?

为了不依赖第三方,您可以使用Google的Loader获取客户的位置。 以下是使用此function的一个很好的示例 ,即加载Google Maps API和ClientLocation。

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

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