测试城市检测的最佳、最有效的方法是什么?我通过www.maxmind.com实现了基于ip的位置检测,但现在我想测试它的准确性。
我知道有各种各样的代理服务,如https://www.geoedge.com/和各种类似的网站,但大多数这些服务的代理服务器数量非常有限。如果有一个自动化的解决方案,它可以遍历数百甚至数千个代理服务器,点击一个测试页面,并将结果制成表格,那就太好了。我相信还有其他人也面临着同样的挑战。测试这一点的实际方法是什么?例如,cURL是否有可能欺骗IP地址?
注意:许多人建议,由于缺乏IP地址的可靠性,当涉及到城市检测时,您永远无法达到完美的准确性,我知道这一点(http://www.maxmind.com/en/city_accuracy)。我仍然希望有一种测试的方式,以达到健全/维护的目的。谢谢!
相关:像Groupon这样的网站是如何根据他们有交易的城市来划分地理位置的?为了清晰起见,我将这个答案分为两个部分。
IP地理位置
你可能想要坚持使用MaxMind,除非你有非常很好的理由质疑MaxMind数据。几年前,我建立了一个与你描述的非常相似的服务,和你一样,想要一种方法来验证MaxMind的准确性。我评估了10多个IP地理定位解决方案,适用于整个领域;免费的JSON api,以企业为中心,数据库订阅。很明显,大多数平台要么直接使用MaxMind,要么将MaxMind数据与其他来源的元数据结合起来。ISP元数据的拼写、大写和常用缩写
这篇论文虽然发表了几年,但也很能说明问题。作者通过将一些IP地理定位工具(包括MaxMind)的结果与他们称之为"ISP Groundtruth"的数据集进行比较,确定了它们的准确性,"ISP Groundtruth"是欧盟ISP路由器数据和路由器实际GPS坐标的混配器。本文提出了城市层面地理定位数据不准确的技术解释。
代理扫描
关于自动代理扫描,我强烈推荐查看nmap及其基于lua的脚本引擎(NSE)。以下是一些脚本和库,您可能会觉得有用:
- 打开代理检测
- HTTP代理 <
- 袜子代理/gh>
代理测试 - ip地理定位
- MaxMind
- IPInfoDB
- geoPlugin
- 数据库支持
- PostgreSQL MySQL