我相信BigQuery fh-bigquery.geocode.geolite_city_bq_b2
数据集中存在错误,并且很好奇是否其他人也注意到了这一点。
背景:我正在运行Ramtin M. Seraj中的BigQuery代码,他/我的逻辑似乎很合理。但是,已知有IP地址代表某些地方,例如东京@ 150.249.199.17,但拉姆丁的查询指出该地点位于美国纽约罗切斯特或加拿大安大略省渥太华。如果查询逻辑合理,那么唯一的结论就是基础Geolite数据集不正确。
要验证,请查看此查询的结果:
SELECT *
FROM `fh-bigquery.geocode.geolite_city_bq_b2b`
WHERE classB = 38649
从这些结果中注意,startIp
= 150.245.0.0和endIp
= 150.249.255.255,因此地址150.249.199.17在此IP范围内。
现在与https://ipinfo.io/150.249.199.17的结果进行比较,并与以下BigQuery的结果进行比较。请注意,所有计算得出的值(例如IP地址的IPV4_TO_INT64())都在上述查询返回的范围之内。
SELECT '150.249.199.17' as ipAddress
, NET.IPV4_TO_INT64(NET.IP_FROM_STRING('150.249.199.17')) AS clientIpNum_int
, TRUNC(NET.IPV4_TO_INT64(NET.IP_FROM_STRING('150.249.199.17'))/(256*256)) AS classB
, CAST(TRUNC(NET.IPV4_TO_INT64(NET.IP_FROM_STRING('150.249.199.17'))/(256*256)) as INT64) as client_classB_int
p.s。我会投票给第一个答案,或者添加评论,但我的Reputons还不够!
答案 0 :(得分:0)
我即将在BigQuery中发布Geolite的改进版本。请继续关注https://twitter.com/felipehoffa和https://medium.com/@hoffa。然后我也会更新此答案。
话虽如此,为了回答标题这个问题的准确性部分,Maxmind说:
GeoLite2数据库是免费的IP地理位置数据库,可与MaxMind的GeoIP2数据库相比,但准确性较差