我想将两个IPv4地址转换为经度和纬度,然后计算它们之间的地理距离。Rails:Geokit错误地将IPv4地址转换为经度和纬度
Geokit说它可以做到这一点。
西雅图:
a = Geokit::Geocoders::GoogleGeocoder.geocode("207.244.147.34")
a.lat => 37.0483944,a.lng => 37.3421261(应为47.5839,-122.2995)
编辑:下面好的是IP地址英国不是SF,但它仍然是英国而不是土耳其。
旧金山:
b = Geokit::Geocoders::GoogleGeocoder.geocode("5.68.123.155")
a.lat => 14.6478672,a.lng => 120.9880659(应为37.7691,-122.4449)
a.distance_to(b)
返回5273.737623217472。
西雅图显然到圣弗朗西斯科有点超过5000英里,我得到很多机票。
我错过了什么?
检查更新的答案,了解如何通过ip查找位置。 – 2015-04-05 18:02:27
GeoIP永远不会完全准确,并且会出现像这样的错误。不存在每个IP地址准确映射到确切位置的数据库。 – 2015-04-06 10:00:25
@SanderSteffann谢谢你。如果这种方法本身容易出错,那么除了将twp IP转换为lat,lng和计算距离外,您是否知道检测VPN使用的最佳做法? – gr8scott06 2015-04-07 03:11:56