基于IP地址的位置服务系统设计与实现

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于IP地址的位置服务系统设计与实现

作者:阮晓龙路景鑫

来源:《电脑知识与技术》2017年第01期

摘要:IP地址的位置服务是当今互联网发展中常见的基石服务之一,该文介绍了该服务意义和应用价值,并详细介绍了基于IP地址的位置服务系统设计与实现过程,介绍了系统的应用方法。

关键词:IP地址;接口服务;系统架构

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)01-0071-05

Abstract: The IP address of the location service is one of the most common services in the development of the Internet, this paper introduces the background and significance of the service,introduces the design and implementation process of the location service system based on IP address, make readers more clearly understand the realization process of the system.

Key words: IP address; interface service; system architecture

近年来,随着互联网的快速发展,越来越多的网络服务需要根据用户IP地址所在的地理位置才能更好地提供服务,基于IP地址的位置服务在如今的互联网服务中扮演着重要的角色。

大规模真实的IP地址所对应的地理位置信息很难获取,本文研究了现有的IP位置服务的技术和方法,对比了多个基于IP地址位置服务的互联网产品,根据其特点和实现方法,设计并实现了开放免费的基于IP地址的位置服务系统——OpenIPDB。

1 背景与意义

互联网是通信技术和计算机技术结合的产物,随着互联网用户的迅速增长,区分用户的来源,确定用户的地理位置成为一个非常重要和广泛的课题。

1.1 IP地址定位的重要性

1)在商业化中的应用

在商业化的网站中,可以根据用户IP地址所在的地理位置在Web页面中添加针对性更强的广告或者与地域相关的新闻等;在网络购物中,将根据用户的地理位置信息,提供个性化服

务,如本地优惠、自动显示快递费用等等。在商业化运营中,获取用户的地理位置,将大大改善用户体验,同时也创造出更多的商机。

2)在日常生活中的应用

基于IP地址位置服务,人们可轻松获取生活中的信息,如当需要查看本地的天气时,不需要选择所在地的地理位置,天气网站中将直接获得请求者IP地址的位置信息,并推送相关的天气情况。

3)在网络安全中的应用

在大规模网络管理和维护工作中,管理员可以通过技术手段定位到故障设备的IP地址,从而高效的排除网络故障。在打击网络防欺诈和网络犯罪的过程中,可以通过犯罪分子的IP 地址定位到具体地理方位,从而实现有效的打击。

1.2现有IP地址定位产品

随着IP位置服务的发展,互联网上出现了一批优秀的IP定位产品,本文研究了常见的六个服务,分别是国外的IP地址库GeoLite2和IP2Location lite,国内的IP地址库淘宝IP地址库、新浪IP地址库、百度IP地址库以及纯真IP地址库。

1.2.1IP地址库概况

GeoLite2和IP2Location lite的数据分别来自于各自对应的商用版本;纯真IP数据库的数据通过QQ软件从网民中收集而来;淘宝、百度和新浪的IP地址库都未提及其数据的构建方法。

目前各个IP地址库的数据量如表1所示。

1.2.2IP地址库对比

1)数据库字段对比

上述六个IP地址数据库,虽然IP地址的数据量都很大,但是每个IP地址数据库都有各自的侧重点,各IP地址数据库中的字段有很大的差异性。六个IP数据库各自对应的IP地址信息字段如表2所示。

2)服务对比

上述六个IP地址库数据提供的服务方式如表3所示。

1.3系统建设目标

通过对IP数据库的了解和对比,参考其他数据库的优势和不足,通过多种方法融合成一个数量、性能和准确度更高的IP位置数据库是本系统的建设目标。同时系统遵从实现一个开放共享IP数据库服务系统为广大用户提供服务的信念,将一直保持免费、共享以及公共服务的原则。

2 系统设计

2.1系统架构

2.1.1物理架构

为保证内部数据的安全性,本系统在部署时采用防火墙映射、主备数据库服务、双机Web 服务等部署方式,最大程度的保证内部数据的安全性以及系统的稳定性、健壮性,系统物理构架如图1所示。

2.1.2逻辑架构

基于IP地址的位置服务系统逻辑架构主要分为四层:第一层为数据集成层,主要采用请求开放、免费的数据接口和下载免费的IP数据库获得相关数据;第二层为数据处理层,将获取的IP数据信息进行清洗、整理以及录入数据库;第三层为业务层,实现系统的数据管理;第四层为表示层,以门户和接口的方式提供服务。系统逻辑结构如图2所示。

2.1.3服务体系架构

系统服务体系主要分为两部分:数据库服务和业务服务。

数据库服务是支撑业务系统功能的正常运行,提供对数据的增删改查等功能以及提供IP 数据库下载;业务服务主要是系统业务模块,帮助使用者更好地了解和使用本系统,服务体系结构如图3所示。

2.2数据流程

2.2.1数据获取

数据获取是获取IP位置信息的原始数据,主要包括数据库下载以及网络接口获取两种形式。

数据库下载是针对互联网上已有的开放免费的IP地址库进行下载。本系统下载获取的IP 数据库有GeoIP和数据库。

网络接口获取是针对仅提供在线查询服务的数据来源。本系统通过网络接口获得数据的来源有四个:淘宝IP地址库数据接口(http:///service/getIpInfo.php?ip=),新浪IP地址库数据接口(http:///iplookup/iplookup.php?format=json&ip=),地址库数据接口(http:///),百度IP定位数据接口(http:

///apistore/iplookupservice/iplookup?ip=),上述服务的数据均是JSON格式,通过请求接口即可获取IP地址位置信息。

2.2.2数据处理

1)规范与标准建立

IP地址信息采用关系数据库存储,表结构如表4所示。

2)数据清洗

通过3.2.1中两种数据获取方式获得的IP地址数据,可能出现字段信息缺失、信息重复、字段不一致等现象,因此需要进行数据清洗。数据清洗的步骤如下。

①根据IP数据表结构,获取IP地址数据中有用字段进行保存;

②将多个数据源获取到的IP地址数据进行逐条数据比对,比对规则如下:

a、如果该数据只存在于一个数据源中,则直接将该数据进行保存;

b、如果该数据中字段与其他数据源中数据字段发生冲突,则选择字段相同率高的数据进行保存。

③从保存后的IP地址数据中获取存疑、缺失数据,通过网络探测、爬虫等方式获取IP地址信息,进行数据修改或补充。

3)IP地址聚合计算

如果将IP地址数据逐条存入数据库中,数据库将有42亿多条记录,这样导致数据库容量大且插入或查询等操作比较慢,严重影响业务的性能,所以应将相同位置信息的IP地址聚合成一个或多个不能再次聚合的IP地址块,减少IP地址总条目数,进而提高系统的性能和响应速度。

相关文档
最新文档