使用 IP 进行地理定位



我一直在尝试使用计算机ip找到一个工具来定位我的位置。

我尝试了一些网络工具,如http://geoiplookup.net/https://geoiptool.com/,以及一些开发人员工具,如freegeoip.net,我更感兴趣。

事实是:地理位置在所有这些地方都相差甚远,至少在我所在的位置(南美,巴西),都指向同一个错误的位置

为什么会这样?

我尝试了这段代码:

send_url = 'http://freegeoip.net/json'
r = requests.get(send_url)
j = json.loads(r.text)
lat = j['latitude']
lon = j['longitude']
return (lat, lon)

但是由于它使用了错误的ip它返回了一些奇怪的lat/lgn,离我几英里远。

1)我可以在上面的代码中传递我的确切ip作为参数吗?

2)除了googlemaps之外,还有其他工具可以找出我的精确lat, lng吗?

与其他地理定位方法(如GPS或WiFi MAC地址)相比,IP地址地理位置的准确性相对较低。原因是由于ISP经常重新分配IP地址。

参考: http://www.geolocation.com

回到你的问题。

1) API 应自动检测您的 IP 地址并返回您估计的位置

2)如果不启用GPS,则无法找到精确的经纬度

尝试 http://geoip-db.com 的服务

一个小的jQuery示例来检索位置,国家,城市,纬度,伦敦,IP和州:

<!DOCTYPE html>
<html>
<head>
<title>GEOIP DB - jQuery example</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js">
</script>
</head>
<body>
<div>Country: <span id="country"></span>
<div>State: <span id="state"></span>
<div>City: <span id="city"></span>
<div>Latitude: <span id="latitude"></span>
<div>Longitude: <span id="longitude"></span>
<div>IP: <span id="IPv4"></span>
<script>
$.ajax({
url: "https://geoip-db.com/jsonp",
jsonpCallback: "callback",
dataType: "jsonp",
success: function( location ) {
$('#country').html(location.country_name);
$('#state').html(location.state);
$('#city').html(location.city);
$('#latitude').html(location.latitude);
$('#longitude').html(location.longitude);
$('#ip').html(location.IPv4);  
}
});     
</script>
</body>
</html>

相关内容

  • 没有找到相关文章

最新更新