在当今互联网的浪潮下,网络给人们带来了巨大的经济效益和便利。广告商通过判断网络用户的位置来推送精确的广告;网络安全人员通过定位IP位置来确定网络故障的所在,及时排除故障。因此对于IP地址的实体地理位置定位技术的研究就显的愈发的重要。
随着IP定位技术的发展,集成的IP定位系统就是将国内外优秀的IP定位数据库汇集到一起,附加抓取一些WHOIS和DNS.LOC来提炼定位信息,最终形成一个相对全面的IP定位数据库。有了数据源后通过冲突消除算法和爬虫对定位信息库的每日更新使得数据库更加的全面,通过类SVD算法和高效IP查询算法的研究与实现来使定位结果更加准确和高效。主要做如下三方面的研究工作:
第一研究和实现了IP定位系统的核心数据源的获取工作,包括分布式爬虫的架构和实现,突破相关网站安全性措施的方法,以及不同数据源“冲突”数据的解决方法,有效提升数据库的全面性。
第二研究和解决了大量IP查询效率低下的问题,阐述了通过高频加时间相结合的缓存策略、基于HASH的查询算法和基于FODO算法的分布式分片策略来提升IP查询效率。
第三研究和实现了类SVD算法通过置信度和准确度来实现最佳定位结果的生成算法,有效提升定位结果的准确性。
数据集是地理定位实现模型的数据基础,地理定位即是根据特定的需求对数据集的参考和更新过程。数据集包含以下几个部分:
• BGP数据:BGP路径信息由 Routeviews项目提供,BGP路径信息包含路由器连接的网络前缀和AS路径。
• 地理组:从3个途径收集部分IP对应地理位置的信息,以(网络地址、网络前缀、地域名称、经度、纬度、可信等级)的形式存储。这3个途径包括:1)部分网站用户信息的收集;2)手工向提供地理位置信息服务机构提交査询得到的信息;3)开放软件中公开的部分信息。
• 路径信息:在验证阶段保存 traceroute的路径信息,以路径结点为单位记录其前驱和后继的网络地址、RTT,地理信息、可信等级等。
• 编码信息:地理信息经常以编码形式被嵌入在一些以城市、州、国家名缩写为DNS名的路由器中。对这些路由器名称的分析结果表明,有3种基本类型的编码暗示位置:1)城市编码:许多ISP用无特征的城市编码或州编码定义主机名称,可以给出一些地理信息的线索;2)机场编码:一些ISP以他们所在城市的机场编码为基础命名DNS。由于机场编码是世界范围的,这样的命名习惯可以暗示部分路由器的位置;3)国家编码:国家编码是基于ISO3166中定义的国家代码,国家信息对于判别依靠国家或机场编码定位结果的正确性非常必要。
地理位置定位实现的主要阶段
地理位置定位需要从以下几个阶段:定位、验证和聚类,如图所示:
定位模块根据定位请求,参考数据源已有信息,通过定位算法确定目标的基本位置。在验证阶段,利用 traceroute原理和传输延迟判断结果的可靠性,并对不可靠的结果给出可能的猜测,同时更新数据源中地理组信息。在聚类阶段,进一步调整合理的网络地址前缀与地理位置的关系。
(部分资料来源于网络,如有涉及请联系删除)