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

时间:2022-10-27 11:58:52

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

摘要: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://.cn/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地址总条目数,进而提高系统的性能和响应速度。

4)数据入库

将经过清洗、聚合处理后的IP地址数据导入数据库中,形成IP地址数据库。

2.3关键功能与流程

2.3.1接口调用

接口调用是用于调用第三方数据接口进行IP地址对比查询,其实现过程具体如下:

①用户输入查询IP地址后,系统向多个服务接口发送HTTP请求,并获取数据接口返回的IP地址信息;

②解析返回的IP地址信息,并根据IP数据表结构,获取有用字段进行保存;

③将保存的字段信息在Web页面上进行呈现。

2.3.2地理位置定位

当用户查找某一IP地址信息时,除了在Web页面上将IP地址信息详细呈现外,系统也将查询结果与百度地图接口对接,从而能够准确地定位到所查IP地址的具体地理位置,帮助用户更好地了解IP地址的位置信息,如图4所示。

2.4数据库设计

2.4.1模型设计

数据库模型使用MySQL Workbench工具进行设计,其数据模型如图5所示。

2.4.2数据表设计

根据数据模型设计,建立数据表。数据表如表5所示。

3 性能与安全

3.1系统安全

3.1.1网络安全

内网和外网通过防火墙进行安全管理,外网不能主动向内网数据库进行操作。内网的安全级别最高,比如数据库服务器,只允许内网中的Web服务器进行数据操作;而Web服务器对外也开放{TCP80}端口。通过对防火墙的配置,避免外部网络对服务器的网络攻击,从而保障了内部系统的稳定性和安全性。

3.1.2信息安全

内网不向外网提供业务或服务器等重点配置信息,保障系统配置信息的安全;注册用户或者管理员密码都采用邮箱验证,并进行md5加密保护,防止恶意用户随意篡改他人密码进行不正当业务操作。

3.1.3数据安全

为保障系统数据安全,需定期将数据库中全量数据进行备份,可通过Linux自带的任务计划,建立自动备份机制,具体操作如下:

1)每天0点进行一次全量数据备份;

2)将备份数据到远程备份服务器上,实现远程备份存储。

3.2性能优化

3.2.1异步数据

针对更新频率低的数据,采用异步数据。例如IP地址统计数据,具体做法如下:

1)每天0点定时查询数据库中IP地址数据,根据所需要信息进行统计查询;

2)将查询结果生成JSON文件,进行保存。

当用户访问IP统计页面时,不需要请求数据库进行查询操作,只需读取保存的JSON文件即可获取IP地址的统计数据。使用异步数据将极大减少数据库的查询次数,减轻数据库压力,进而提高页面的响应速度。

3.2.2数据库优化

数据库采用一主二从部署模式并建立同步机制,主数据库服务器主要进行数据的写入、更新操作,进行查询操作时,主要是以轮询的方式在从数据库服务器上进行操作。数据库采用该部署模式,可通过负载均衡的方式分摊数据库压力,从而提高系统的性能。

4 系统实现

4.1在线服务平台

4.1.1IP数据查询

本系统支持本地查询和接口调用查询两种查询方式,本地查询是指查询本地的IP地址数据库;接口调用查询是指调用第三方数据接口比对查询,如图6所示。

4.1.2IP数据质疑

通过IP地址的比对查询,可看出本地数据和第三方接口数据的差异,用户可根据实际情况判断查询地址信息是否错误。如果系统中IP地址信息错误,可通过质疑的方式向管理员提供相关依据,管理员可根据质疑信息进行IP地址信息修改,如图7所示。

4.2系统管理平台

4.2.1系统总览

系统总览中主要展示系统登录信息以及系统的相关运行信息,系统登录信息可使管理员了解自己的账号是否被异常登录;系统运行信息可使管理员了解当前系统的业务信息。

4.2.2 IP数据库管理

将数据库中IP地址信息进行输出,并可根据地理位置进行筛选、查看、修改、删除等操作,如图8所示。

4.2.3日志审计

系统中日志信息包括登录信息、操作信息以及接口操作信息,管理员可根据所需查找不同类型、不同时间范围的日志信息,帮助管理员快速查找到相关操作记录。

4.3数据接口服务平台

JSON是常用的数据交换格式之一,所以本系统将IP地址信息生成JSON文件,通过Web服务器,使用者可以通过的接口地址获取数据。

4.3.1单IP地址请求

单IP地址请求时数据格式如下所示,使用者添加单IP查询参数,即可获取单IP地址的位置信息。

{

"Code": "0",

"Msg": "success",

"Data": [

{

"ip": "211.69.35.10",

"continent": "亚洲",

"country": "中国",

"province": "河南省",

"city": "郑州市",

"county": "",

"areaid": "410105",

"isp": "中国教育和科研计算机网",

"addr": "河南中医药大学",

"longitude": "113.816472",

"latitude": "34.785868",

"desc": "",

}

]

}

4.3.2多IP地址请求

多IP地址请求时数据格式如下所示,使用者添加多IP查询参数,即可获取多个IP地址的位置信息。

{

"Code": "0",

"Msg": "success",

"Data": {

"address1":[

{

"ip": "211.69.35.10",

"continent": "亚洲",

"country": "中国",

...

}

]

"address2":[

{…}

]

}

}

4.3.3网络段地址请求

网络段IP地址请求时数据格式如下所示,使用者添加网络段IP查询参数,即可获取网络段中所有IP地址的位置信息。

{

"Code": "0",

"Msg": "success",

"Data": {

"address1":[

{

"startip": "211.69.35.0",

"endip": "211.69.35.0",

"continent": "亚洲",

"country": "中国",

...

}

]

...

}

}

4.4数据库下载服务

本系统所维护的IP数据库可提供下载,当IP数据库更新后,将数据库中IP地址信息进行导出,生成数据库文件,并通过Web服务器进行,用户可根据需要下载数据库文件。

5 结束语

目前本系统中IP数据量约35亿条,覆盖世界范围内的572个城市地区,其中包括中国的34个省市自治^,已经在互联网上正式使用,访问地址是:http://openipdb.online。

目前系统中还存在数据不完整、数据信息不准确等问题,因此希望能够得到广大用户的帮助和支持,共同维护系统的IP数据库,从而为更多的使用者提供服务。

参考文献:

[1] 陈鹏.网络实体地理定位IPMapping系统设计与实现[D]. 长沙: 国防科技大学, 2008.

[2] 李威.基于IP地址的网络实体地理位置定位技术研究与实现[D]. 北京: 北京交通大学, 2012.

[3] 聂荣, 余建国, 张洪欣, 等. IP地址地理位置映射技术[J]. 计算机工程, 2008, 34(15):102-104.

上一篇:双条杉天牛发生规律调查及防治药剂筛选试验 下一篇:加强崇礼蚕豆地标产品管理的建议