CN106599019A - 一种精确高效的ip地址定位方法 - Google Patents
一种精确高效的ip地址定位方法 Download PDFInfo
- Publication number
- CN106599019A CN106599019A CN201610918884.8A CN201610918884A CN106599019A CN 106599019 A CN106599019 A CN 106599019A CN 201610918884 A CN201610918884 A CN 201610918884A CN 106599019 A CN106599019 A CN 106599019A
- Authority
- CN
- China
- Prior art keywords
- index
- block
- address
- data
- region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种精确高效的IP地址定位方法,包括以下步骤:S1:建立数据库;S2:采用定位块SUPER BLOCK将待测IP定位至索引区域INDEX中;S3:将待测IP与索引区域INDEX中的索引元素index block进行比较,当待测IP值位于其中一个索引元素index block的起始IP与结束IP之间,即待测IP命中索引;S4:根据该索引元素index block的数据信息得到该IP值在数据库中对应的数据长度和数据地址;S5:找出相关的物理地址。本发明通过将IP值与物理地址保存在新建的数据库中,通过索引法在数据库中查询与IP对应的物理地址,实现IP地址的快速精确定位。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种精确高效的IP地址定位方法。
背景技术
互联网中的各个节点,例如主机或路由器,是物理存在的,具体地存放在一个物理所在地,各个节点都有唯一的IP 地址以相互区分和相互联系,通过节点的IP 地址定位节点的地理位置信息的技术应运而生。
现有技术中,可以利用请求端提供的IP地址,查询IP地址数据库,获取该IP地址的所在区域,例如省份、城市等等,然而,由于全球有42亿个IP地址,难以实现IP地址的精确定位。
发明内容
本发明的目的是针对现有技术中的上述不足,提供了一种精确高效的IP地址定位方法。
本发明的目的通过以下技术方案实现:一种精确高效的IP地址定位方法,包括以下步骤:
S1:建立数据库,建立包括以下步骤:
数据区data的建立步骤:将物理地址信息录入数据区data中;
索引区域INDEX的建立步骤:所述索引区域INDEX包括有多个索引元素index block,每个索引元素index block在数据区data中对应一个物理地址;所述索引元素index block包括有起始IP,结束IP以及用于确定数据区data中物理地址的数据信息,所述数据信息包括有数据长度和数据地址;
定位块SUPER BLOCK的建立步骤:定位块SUPER BLOCK用于获取索引区域INDEX起始位置的索引元素index block以及结束位置的索引元素index block,从而获取索引区域INDEX的范围;
S2:采用定位块SUPER BLOCK将待测IP定位至索引区域INDEX中;
S3:将待测IP与索引区域INDEX中的索引元素index block进行比较,当待测IP值位于其中一个索引元素index block的起始IP与结束IP之间,即待测IP命中索引;
S4:根据该索引元素index block的数据信息得到该IP值在数据库中对应的数据长度和数据地址;
S5:根据数据长度和数据地址在数据区找出相关的物理地址。
本发明进一步设置为,在步骤S3中,将待测IP与索引区域INDEX中的索引元素index block进行比较包括以下步骤:
A:将所有的索引元素index block值进行排序,得到block1、block2、block3…blockN;
B:算出索引元素index block的总数;
C:采用二分法比较索引元素index block的两个区间与待测IP值的大小,多次采用二分法逐步得出当前IP值所属的索引元素index block。
本发明进一步设置为,
在步骤S1的索引区域INDEX的建立步骤中,将索引区域INDEX内所有索引元素indexblock划分为多个索引块index partion;
在步骤S1中,还包括有二级索引区HEADER INDEX的建立步骤:所述二级索引区HEADERINDEX包括有多个二级索引元素header index block,每个二级索引元素header indexblock在索引区INDEX中对应一个索引块index partion。
本发明进一步设置为,在步骤S2与步骤S3之间,还包括有步骤SP:确定待测IP属于二级索引区HEADER INDEX内的二级索引元素header index block,将待测IP定位至所述的索引块index partion中。
本发明进一步设置为,所述索引元素的起始IP、结束IP以及数据信息均为4个字节;数据信息中的第一个字节用于保存数据长度,后三个字节用于保存数据地址。
本发明进一步设置为,所述定位块SUPER BLOCK为8个字节,前4个字节用于保存索引区域INDEX起始位置的索引元素index block的地址,后4个字节用于保存索引区域INDEX结束位置的索引元素index block的地址。
本发明进一步设置为,所述二级索引元素header index block包括有8个字节,前4个字节用于保存索引块index partion起始位置的index block的起始IP,后4位用于保存该index block的地址。
本发明的有益效果:本发明通过将IP值与物理地址保存在新建的数据库中,通过索引与二分法在数据库中查询与IP值对应的物理地址,实现IP地址的快速精确定位。
附图说明
利用附图对发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
图1是本发明数据库的示意图。
具体实施方式
结合以下实施例对本发明作进一步描述。
由图1可知,本实施例所述的一种精确高效的IP地址定位方法,包括以下步骤:S1:建立数据库,建立包括以下步骤:
数据区data的建立步骤:将物理地址信息录入数据区data中;
索引区域INDEX的建立步骤:所述索引区域INDEX包括有多个索引元素index block,每个索引元素index block在数据区data中对应一个物理地址;所述索引元素index block包括有起始IP,结束IP以及用于确定数据区data中物理地址的数据信息,所述数据信息包括有数据长度和数据地址;
定位块SUPER BLOCK的建立步骤:定位块SUPER BLOCK用于获取索引区域INDEX起始位置的索引元素index block以及结束位置的索引元素index block,从而获取索引区域INDEX的范围;通过建立将IP值与物理地址保存在新建的数据库中,通过索引法在数据库中查询与IP值对应的物理地址,实现IP地址的快速精确定位。
S2:采用定位块SUPER BLOCK将待测IP定位至索引区域INDEX中;当需要确定待测IP的物理地址时,采用定位块SUPER BLOCK能够快速地将待测IP定位至索引区域INDEX中。
S3:将待测IP与索引区域INDEX中的索引元素index block进行比较,当待测IP值位于其中一个索引元素index block的起始IP与结束IP之间,即待测IP命中索引;
S4:根据该索引元素index block的数据信息得到该IP值在数据库中对应的数据长度和数据地址;
S5:根据数据长度和数据地址在数据区找出相关的物理地址。
本实施例所述的一种精确高效的IP地址定位方法,在步骤S3中,将待测IP与索引区域INDEX中的索引元素index block进行比较包括以下步骤:
A:将所有的索引元素index block值进行排序,得到block1、block2、block3…blockN;
B:算出索引元素index block的总数;
C:采用二分法比较索引元素index block的两个区间与待测IP值的大小,多次采用二分法逐步得出当前IP值所属的索引元素index block。例如假设起始位置的索引元素为block3,结束位置的索引元素为block8,故索引元素index block的总数为8-3+1=6个,将索引元素划分为block3-block5以及block6-block8,将IP值与block5值进行比较,若IP值大于block5值,则该IP位于区间block6-block8中,反之,则位于区间block3-block5中,多次重复以上步骤,最终得到该IP所属的索引元素index block。
本实施例所述的一种精确高效的IP地址定位方法,在步骤S1的索引区域INDEX的建立步骤中,将索引区域INDEX内所有索引元素index block划分为多个索引块indexpartion;
在步骤S1中,还包括有二级索引区HEADER INDEX的建立步骤:所述二级索引区HEADERINDEX包括有多个二级索引元素header index block,每个二级索引元素header indexblock在索引区INDEX中对应一个索引块index partion。本实施例所述的一种精确高效的IP地址定位方法,在步骤S2与步骤S3之间,还包括有步骤SP:确定待测IP属于二级索引区HEADER INDEX内的二级索引元素header index block,将待测IP定位至所述的索引块index partion中。通过建立二级索引区HEADER INDEX,当查询IP的物理地址时,首先定位块SUPER BLOCK将该待测IP定位至索引区域INDEX中后,确定待测IP属于二级索引区HEADERINDEX内的二级索引元素header index block,将待测IP定位至所述的索引块indexpartion中,然后确定待测ID所属的index block,最终得出物理地址,通过二次索引能够减少读盘的次数,加快ID定位的速度。
本实施例所述的一种精确高效的IP地址定位方法,所述索引元素的起始IP、结束IP以及数据信息均为4个字节;数据信息中的第一个字节用于保存数据长度,后三个字节用于保存数据地址。
本实施例所述的一种精确高效的IP地址定位方法,所述定位块SUPER BLOCK为8个字节,前4个字节用于保存索引区域INDEX起始位置的索引元素index block的地址,后4个字节用于保存索引区域INDEX结束位置的索引元素index block的地址。
本实施例所述的一种精确高效的IP地址定位方法,所述二级索引元素headerindex block包括有8个字节,前4个字节用于保存索引块index partion起始位置的indexblock的起始IP,后4位用于保存该index block的地址。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。
Claims (7)
1.一种精确高效的IP地址定位方法,其特征在于:包括以下步骤:
S1:建立数据库,建立包括以下步骤:
数据区data的建立步骤:将物理地址信息录入数据区data中;
索引区域INDEX的建立步骤:所述索引区域INDEX包括有多个索引元素index block,每个索引元素index block在数据区data中对应一个物理地址;所述索引元素index block包括有起始IP,结束IP以及用于确定数据区data中物理地址的数据信息,所述数据信息包括有数据长度和数据地址;
定位块SUPER BLOCK的建立步骤:定位块SUPER BLOCK用于获取索引区域INDEX起始位置的索引元素index block以及结束位置的索引元素index block,从而获取索引区域INDEX的范围;
S2:采用定位块SUPER BLOCK将待测IP定位至索引区域INDEX中;
S3:将待测IP与索引区域INDEX中的索引元素index block进行比较,当待测IP值位于其中一个索引元素index block的起始IP与结束IP之间,即待测IP命中索引;
S4:根据该索引元素index block的数据信息得到该IP值在数据库中对应的数据长度和数据地址;
S5:根据数据长度和数据地址在数据区找出相关的物理地址。
2.根据权利要求1所述的一种精确高效的IP地址定位方法,其特征在于:在步骤S3中,将待测IP与索引区域INDEX中的索引元素index block进行比较包括以下步骤:
A:将所有的索引元素index block值进行排序,得到block1、block2、block3…blockN;
B:算出索引元素index block的总数;
C:采用二分法比较索引元素index block的两个区间与待测IP值的大小,多次采用二分法逐步得出当前IP值所属的索引元素index block。
3.根据权利要求1所述的一种精确高效的IP地址定位方法,其特征在于:
在步骤S1的索引区域INDEX的建立步骤中,将索引区域INDEX内所有索引元素indexblock划分为多个索引块index partion;
在步骤S1中,还包括有二级索引区HEADER INDEX的建立步骤:所述二级索引区HEADERINDEX包括有多个二级索引元素header index block,每个二级索引元素header indexblock在索引区INDEX中对应一个索引块index partion。
4.根据权利要求3所述的一种精确高效的IP地址定位方法,其特征在于:在步骤S2与步骤S3之间,还包括有步骤SP:确定待测IP属于二级索引区HEADER INDEX内的二级索引元素header index block,将待测IP定位至所述的索引块index partion中。
5.根据权利要求1所述的一种精确高效的IP地址定位方法,其特征在于:所述索引元素的起始IP、结束IP以及数据信息均为4个字节;数据信息中的第一个字节用于保存数据长度,后三个字节用于保存数据地址。
6.根据权利要求1所述的一种精确高效的IP地址定位方法,其特征在于:所述定位块SUPER BLOCK为8个字节,前4个字节用于保存索引区域INDEX起始位置的索引元素indexblock的地址,后4个字节用于保存索引区域INDEX结束位置的索引元素index block的地址。
7.根据权利要求3所述的一种精确高效的IP地址定位方法,其特征在于:所述二级索引元素header index block包括有8个字节,前4个字节用于保存索引块index partion起始位置的index block的起始IP,后4位用于保存该index block的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610918884.8A CN106599019A (zh) | 2016-10-21 | 2016-10-21 | 一种精确高效的ip地址定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610918884.8A CN106599019A (zh) | 2016-10-21 | 2016-10-21 | 一种精确高效的ip地址定位方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106599019A true CN106599019A (zh) | 2017-04-26 |
Family
ID=58556213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610918884.8A Pending CN106599019A (zh) | 2016-10-21 | 2016-10-21 | 一种精确高效的ip地址定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599019A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231451A (zh) * | 2017-05-23 | 2017-10-03 | 上海斐讯数据通信技术有限公司 | 一种网络协议地址‑地域信息减少重复匹配的方法及系统 |
CN110769079A (zh) * | 2019-10-30 | 2020-02-07 | 杭州迪普科技股份有限公司 | 一种检索ip对应地理位置的方法及装置 |
CN110855812A (zh) * | 2019-11-28 | 2020-02-28 | 中国银行股份有限公司 | 基于ip地址的定位方法、装置和设备 |
CN112307138A (zh) * | 2019-07-30 | 2021-02-02 | 华扬联众数字技术股份有限公司 | 地域信息的存储和查询方法、系统与介质 |
CN112948376A (zh) * | 2021-02-02 | 2021-06-11 | 厦门服云信息科技有限公司 | 一种ip地理位置信息查询方法、终端设备及存储介质 |
CN113515527A (zh) * | 2021-09-13 | 2021-10-19 | 成都数默科技有限公司 | 一种聚合型ip索引的建立和应用方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863071A (zh) * | 2005-08-06 | 2006-11-15 | 华为技术有限公司 | 对基于IPv6的业务流进行统计的方法 |
CN101355595A (zh) * | 2008-09-17 | 2009-01-28 | 北京搜狗科技发展有限公司 | 定位ip地址的物理所在地的方法和装置 |
CN102984292A (zh) * | 2012-12-03 | 2013-03-20 | 北京锐安科技有限公司 | 一种ip段地址集中查找ip地址的方法 |
EP2609529A1 (en) * | 2010-08-23 | 2013-07-03 | Nokia Corp. | Method and apparatus for processing search requests for a partitioned index |
-
2016
- 2016-10-21 CN CN201610918884.8A patent/CN106599019A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863071A (zh) * | 2005-08-06 | 2006-11-15 | 华为技术有限公司 | 对基于IPv6的业务流进行统计的方法 |
CN101355595A (zh) * | 2008-09-17 | 2009-01-28 | 北京搜狗科技发展有限公司 | 定位ip地址的物理所在地的方法和装置 |
EP2609529A1 (en) * | 2010-08-23 | 2013-07-03 | Nokia Corp. | Method and apparatus for processing search requests for a partitioned index |
CN102984292A (zh) * | 2012-12-03 | 2013-03-20 | 北京锐安科技有限公司 | 一种ip段地址集中查找ip地址的方法 |
Non-Patent Citations (3)
Title |
---|
ROBERT SEDGEWICK等: "《Java 程序设计:一种跨学科的方法》", 31 December 2008, 清华大学出版社 * |
张喜云: "《宽带接入网技术》", 28 February 2009, 西安电子科技大学出版社 * |
欧阳友权: "《CDIO工程教育系列教程 公共基础类 计算机网络》", 30 April 2013, 世界图书出版广东有限公司 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231451A (zh) * | 2017-05-23 | 2017-10-03 | 上海斐讯数据通信技术有限公司 | 一种网络协议地址‑地域信息减少重复匹配的方法及系统 |
CN112307138A (zh) * | 2019-07-30 | 2021-02-02 | 华扬联众数字技术股份有限公司 | 地域信息的存储和查询方法、系统与介质 |
CN110769079A (zh) * | 2019-10-30 | 2020-02-07 | 杭州迪普科技股份有限公司 | 一种检索ip对应地理位置的方法及装置 |
CN110855812A (zh) * | 2019-11-28 | 2020-02-28 | 中国银行股份有限公司 | 基于ip地址的定位方法、装置和设备 |
CN110855812B (zh) * | 2019-11-28 | 2022-05-27 | 中国银行股份有限公司 | 基于ip地址的定位方法、装置和设备 |
CN112948376A (zh) * | 2021-02-02 | 2021-06-11 | 厦门服云信息科技有限公司 | 一种ip地理位置信息查询方法、终端设备及存储介质 |
CN113515527A (zh) * | 2021-09-13 | 2021-10-19 | 成都数默科技有限公司 | 一种聚合型ip索引的建立和应用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599019A (zh) | 一种精确高效的ip地址定位方法 | |
CN103825976B (zh) | 分布式系统架构中的nat处理方法及装置 | |
CN101355595B (zh) | 定位ip地址的物理所在地的方法和装置 | |
CN105227688B (zh) | 一种基于路径特征的区域级目标ip定位方法 | |
WO2016091174A1 (zh) | 图数据的搜索方法和装置 | |
TWI645694B (zh) | 用於處理交替配置的最長首碼匹配表的裝置和方法 | |
WO2015142710A8 (en) | Method, apparatus, and system for determining a location corresponding to an ip address | |
CN104537105B (zh) | 一种基于Web地图的网络实体地标自动挖掘方法 | |
CN108228657B (zh) | 一种关键字检索的实现方法及装置 | |
CN103426191B (zh) | 一种图片标注方法及系统 | |
CN106126383A (zh) | 一种日志处理方法和装置 | |
US20150256450A1 (en) | Generating a Shape Graph for a Routing Table | |
CN102411617A (zh) | 一种对海量url进行存储和查询方法 | |
CN104579998A (zh) | 一种负载均衡处理装置 | |
CN110995885A (zh) | 一种基于路由器误差训练的ip定位方法 | |
CN106027427B (zh) | 基于fpga实现的hash平均分流方法及装置 | |
CN107920115A (zh) | 一种基于时延和地理一致性约束的城市级ip定位方法 | |
US10547536B2 (en) | Identifying shortest paths | |
KR20170067804A (ko) | 라우팅 테이블의 유지 방법, 장치 및 저장매체 | |
CN105989145A (zh) | 公交线路的自动更新方法、设备及系统 | |
CN106940711A (zh) | 一种url检测方法及检测装置 | |
CN106802958A (zh) | Cad数据到gis数据的转换方法及系统 | |
CN108848203B (zh) | 一种网络边界的识别方法及系统 | |
CN107807976A (zh) | Ip归属地查询方法和装置 | |
CN104598580A (zh) | Ip地理定位数据的挖掘方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170426 |
|
RJ01 | Rejection of invention patent application after publication |