CN109657108A - 一种域名资产数据存储和查询方法和系统 - Google Patents
一种域名资产数据存储和查询方法和系统 Download PDFInfo
- Publication number
- CN109657108A CN109657108A CN201811391835.9A CN201811391835A CN109657108A CN 109657108 A CN109657108 A CN 109657108A CN 201811391835 A CN201811391835 A CN 201811391835A CN 109657108 A CN109657108 A CN 109657108A
- Authority
- CN
- China
- Prior art keywords
- domain name
- character
- character string
- domain
- asset data
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种域名资产数据存储和查询方法和系统。该方法包括:根据域名的结构对域名进行切分,分成二级域名部分、域名前缀部分;对切分得到的二级域名部分、域名前缀部分与域名对应的解析IP,分别进行哈希计算,得到三段字符串;对所述三段字符串中的每一段字符串选取特定长度的字符,使用连接字符进行拼接组合,形成不同组合的字符串;根据业务需要,将不同组合的字符串携带相应的信息,存入到Hbase表中;进而利用Hbase数据库对域名资产数据进行快速的查询。本发明能够达到在亿级海量数据中进行快速查询的目的。
Description
技术领域
本发明涉及域名资产信息存储和查询领域,利用Hbase的特性来存储域名资产数据,进行特殊处理再存储的域名数据,可以到达快速条件查询的目的。
背景技术
域名作为一种特殊的资源,在互联网领域中占据的角色位置越来越重要。在国内,域名的申请,是只需要申请到二级域名并备案的,对于二级域名添加各类域名前缀形成的多级域名,则不需要申请和备案,所以拥有多个域名前缀的域名,均可以认为是该二级域名的扩展,如wenku.baidu.com、music.baidu.com,均属于baidu.com,算作该二级域名的资产。另外每个有解析值的域名,表示该域名已被注册,所以该域名对应的解析IP,也属于该域名资产信息。
在某个以省市为单位的流量节点,进行流量分析时,域名与其解析IP的对应关系,在较短时间内(1—2周),即可积累上千万的记录,该记录数量预估在千万和亿级别,当有如此大量的数据积累后,每天的访问仍需要继续进行对比判断,来判断当天记录到的对应关系是否已被记录,所以要对大量的记录,进行查询判断和更新的操作,面对如此多的数据,普通的数据库如mysql、oracle、redis等,无法满足要求,而目前没有既支持对大量数据的快速查询读写,又支持数据的快速条件查询的解决方案。
发明内容
针对上述背景问题,本发明设计了一种域名资产数据存储和查询方案。该方案能够实现大量域名数据的存储,并对二级域名及其资产数据进行快速条件查询。
本发明根据域名结构的特殊性,以二级域名作为关键字段构建了域名资产相关信息,通过特殊的拼接,利用Hbase数据库达到快速查询的目的。
本发明采用的技术方案如下:
一种域名资产数据存储方法,包括以下步骤:
1)根据域名的结构对域名进行切分,分成二级域名部分、域名前缀部分;
2)对切分得到的二级域名部分、域名前缀部分与域名对应的解析IP,分别进行哈希计算,得到三段字符串;
3)对所述三段字符串中的每一段字符串选取特定长度的字符,使用连接字符进行拼接组合,形成不同组合的字符串;
4)根据业务需要,将不同组合的字符串携带相应的信息,存入到Hbase表中。
进一步地,步骤2)将切分得到的二级域名、域名前缀与域名的解析IP这三段信息中的每段信息进行哈希计算,得到三段32位长度的字符串。
进一步地,步骤3)中对三段字符串,每段选取的的长度不同,最后三段不同长度的字符串使用两个连接字符连接,共形成长度为m的字符串,m取值范围为48至96,来作为Hbase的key,进行信息存储。例如共形成长度为64的字符串,来作为Hbase的key,进行信息存储。
进一步地,步骤3)取二级域名哈希字符串的0-x位,取域名前缀哈希字符串的0到y位,取解析IP哈希字符串的0到z位,然后对这三段信息,使用两个连接字符连接,拼接后的字符串总长度为x+1+y+1+z位,x、y、z取值范围为10-32;以该长度字符串作为Hbase数据库的key。例如取二级域名哈希字符串的全部,取域名前缀哈希字符串的0到14位,取解析IP哈希字符串的0到16,然后对这三段信息,使用两个连接字符连接,拼接后的字符串总长度为32+1+14+1+16=64位;以该长度字符串作为Hbase数据库的key,以有效利用64位系统的特性。
进一步地,步骤3)所述连接字符使用非数字、字母,即连接字符不能使用哈希字符串中所允许出现的字符;并且连接字符不允许使用ASCII码表中ASCII码值最大的字符,即ASCII码125字符。
进一步地,步骤4)中,三段字符串不同的组合形成的key,其唯一性不变,但是组合能够有多种变化,形成不同的key,来存储多种信息。
一种域名资产数据查询方法,包括以下步骤:
a)采用上面所述方法存储域名资产数据;
b)利用Hbase的API,通过使用scan查询并设定查询条件的startrow和endrow,对域名资产数据进行快速的查询。
进一步地,步骤b)使用scan查询并设置startrow和endrow时,要求endrow>startrow;为满足该特性,要求endrow的结尾字符为ASCII码中值最大的一位125,或者结尾字符的ASCII值大于startrow结尾字符的ASCII值。
一种域名资产数据存储系统,其包括:
切分模块,负责根据域名的结构对域名进行切分,分成二级域名部分、域名前缀部分;
哈希计算模块,负责对切分得到的二级域名部分、域名前缀部分与域名对应的解析IP,分别进行哈希计算,得到三段字符串;
拼接组合模块,负责对所述三段字符串中的每一段字符串选取特定长度的字符,使用连接字符进行拼接组合,形成不同组合的字符串;
存储模块,负责根据业务需要,将不同组合的字符串携带相应的信息,存入到Hbase表中。
一种域名资产数据查询系统,包括所述域名资产数据存储系统以及一查询模块;所述查询模块利用Hbase的API,通过使用scan查询并设定查询条件的startrow和endrow,对存储的域名资产数据进行快速的查询。
本发明的有益效果如下:
利用Hbase本身可以对大量域名数据进行存储和读写,但Hbase不支持模糊查询和单纯的正则匹配查询,效率太低下(需要扫描全表),但可以限定扫描起始段来较少匹配扫描的行数,大大提高条件查询速度。本发明利用该特性,设计了一种在一定范围内有序的字符串来作为条件,快速的查询到该条件下的所有匹配的字符串,即以二级域名作为条件,查询到该二级域名下的所有对应的资产信息;并且扩展了该查询:以IP为条件,查询该解析IP曾对应的所有域名及其资产信息。
附图说明
图1.域名资产数据的存储方法的总体流程图。
图2.域名资产数据的存储设计流程示意图。
图3.域名资产数据的查询应用流程示意图。
图4.域名资产查询实例的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
1.数据的存储
图1是域名资产数据的存储方法的总体流程图,包括以下步骤:
首先,当采集到域名与其对应的解析IP后,开始对域名进行切分(拆解),得到二级域名和域名前缀,该域名前缀和解析IP,都定义为该二级域名的资产信息,所以二级域名为查询条件,来查询其资产信息。域名允许被切割成二级域名和域名前缀,如果域名前缀不存在,则设定为空字符串。
由于域名的长度本身,在0到255之内变动,所以为了长度固定,对域名切分后的两部分,分别进行哈希计算,得到两个长度为32位的字符串,另外对解析IP,执行同样的操作(即进行哈希计算,得到长度为32位的字符串)。因为解析IP可以是有多值,为保证查询多个IP时,哈希计算结果统一,所以对多个解析IP的计算是先对多个IP进行排序,然后以逗号连接,再进行哈希计算,得到32位长度的字符串。
此时,该域名对IP的对应关系,转换为3个长度为32位的字符串,该3段哈希字符串,可以唯一表示该对应关系。为了更好的设计key的长度,本发明对3段哈希字符串进行截取。本发明的资产查询,是以二级域名为查询条件,所以为保证二级域名的唯一性,二级域名的哈希字符串,取全部,即图2中A段。另外由于现实网络中,二级域名的域名前缀部分较为有限,所以在二级域名相同的情况下,域名前缀虽然只取前14位(即图2中B段),但是发生哈希碰撞的可能性,近乎为0,所以该组合的唯一性依然可以保障。同样,在二级域名相同的前提下,虽然对解析IP的哈希字符串只取16位(即如图2中C段),但其唯一性,依然可以认为不变。
本发明是以二级域名为条件,利用Hbase的scan查询,并设定startrow和endrow来达到快速查询的目的,所以在设计Hbase的key的时候,把二级域名作为key的起始字符串。然后为了后期的切割key,分别使用了|(ascii值124)和:(asci值58)作为连接符,来连接ABC这3段信息。同时,startrow和endrow的设定要求为:在字符串比较中,endrow>startrow,所以,为了满足该查询条件,本发明在查询拼接endrow的时候,使用}(ascii值125)符号作为结尾字符(或者结尾字符的ASCII值大于startrow结尾字符的ASCII值)。因为在字符串比较中:
}>|>:
同理:
A段+}的组合>A段+|的组合>A段+:的组合
C段+}的组合>C段+|的组合>C段+:的组合
该设计为图3中域名查询和IP查询两项应用的先决条件。
根据上述原理,设计出A段+|+B段+:+C段的组合,该组合为key1(长64),设计出C段+:+A段+|+B段的组合,该组合为key2(长64),然后key1携带多个有效信息(包括二级域名、子域名、解析IP、首次出现时间、最近发现时间、累计发现次数、解析类型等),形成k-v对,存入到表1中,key2将key1作为自己的value形成k-v对,存入到表2中。
因key1是以二级域名的哈希字符串作为起始部分,所以key1用于以域名为条件的查询,即域名查询。包括二级域名为条件的查询,二级域名和其域名前缀为条件的查询。
因key2是以域名解析IP的哈希字符串作为起始部分,所以key2用于以IP为条件的查询,查询结果为该IP对应的所有域名组合,对该结果进行循环,依次从表1中利用键查询(Hbase中最快的查询)该组合,获取相关信息。
通过以上步骤,完成数据的存储。
2.数据的查询
数据的查询的实施过程如图3所示,包括域名查询和IP查询,分别说明下:
域名查询,对输入的域名,进行切分,然后分别进行哈希计算,按相同的原则截取计算后的哈希字符串。然后根据条件,拼接startrow和endrow。再利用scan查询,快速查询到该条件下的所有结果,即查询到该二级域名对应的资产信息,以及每条查询结果所对应的信息,如该组合第一次发现时间,累计发现次数等等,进行展示。
IP查询,对输入的IP,如果有多个,则进行排序,然后以逗号连接,再进行哈希计算,按相同的原则,截取计算后的字符串。以IP为条件,拼接startrow和endrow,利用scan查询,得的查询结果,为表1中的key,该结果表明该IP曾对应过的所有域名。然后利用该key,在表1中依次查询,得到每个组合所对应的信息,进行展示。图4是本实施例的域名资产查询实例的操作界面的截图。
本发明另一实施例提供一种域名资产数据存储系统,其包括:
切分模块,负责根据域名的结构对域名进行切分,分成二级域名部分、域名前缀部分;
哈希计算模块,负责对切分得到的二级域名部分、域名前缀部分与域名对应的解析IP,分别进行哈希计算,得到三段字符串;
拼接组合模块,负责对所述三段字符串中的每一段字符串选取特定长度的字符,使用连接字符进行拼接组合,形成不同组合的字符串;
存储模块,负责根据业务需要,将不同组合的字符串携带相应的信息,存入到Hbase表中。
本发明另一实施例提供一种域名资产数据查询系统,包括所述域名资产数据存储系统以及一查询模块;所述查询模块利用Hbase的API,通过使用scan查询并设定查询条件的startrow和endrow,对存储的域名资产数据进行快速的查询。
除以上实施例以外,本发明也可选用其他key-value存储系统如mongdb等进行实现。Key值的设计可根据存储和检索需求,进行相应调整和优化。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种域名资产数据存储方法,其特征在于,包括以下步骤:
1)根据域名的结构对域名进行切分,分成二级域名部分、域名前缀部分;
2)对切分得到的二级域名部分、域名前缀部分与域名对应的解析IP,分别进行哈希计算,得到三段字符串;
3)对所述三段字符串中的每一段字符串选取特定长度的字符,使用连接字符进行拼接组合,形成不同组合的字符串;
4)根据业务需要,将不同组合的字符串携带相应的信息,存入到Hbase表中。
2.根据权利要求1所述的方法,其特征在于,步骤2)将切分得到的二级域名、域名前缀与域名的解析IP这三段信息中的每段信息进行哈希计算,得到三段32位长度的字符串。
3.根据权利要求1所述的方法,其特征在于,步骤3)中对三段字符串,每段选取的的长度不同,最后三段不同长度的字符串使用两个连接字符连接,共形成长度为m的字符串,m取值范围为48至96,来作为Hbase的key,进行信息存储。
4.根据权利要求3所述的方法,其特征在于,步骤3)取二级域名哈希字符串的0-x位,取域名前缀哈希字符串的0到y位,取解析IP哈希字符串的0到z位,然后对这三段信息,使用两个连接字符连接,拼接后的字符串总长度为x+1+y+1+z位,x、y、z取值范围为10-32;以该长度字符串作为Hbase数据库的key。
5.根据权利要求1至4中任一权利要求所述的方法,其特征在于,步骤3)所述连接字符使用非数字、字母,即连接字符不能使用哈希字符串中所允许出现的字符;并且连接字符不允许使用ASCII码表中ASCII码值最大的字符,即ASCII码125字符。
6.根据权利要求1所述的方法,其特征在于,步骤4)中,三段字符串不同的组合形成的key,其唯一性不变,但是组合能够有多种变化,形成不同的key,来存储多种信息。
7.一种域名资产数据查询方法,其特征在于,包括以下步骤:
a)采用权利要求1~6中任一权利要求所述方法存储域名资产数据;
b)利用Hbase的API,通过使用scan查询并设定查询条件的startrow和endrow,对域名资产数据进行快速的查询。
8.根据权利要求7所述的方法,其特征在于,步骤b)使用scan查询并设置startrow和endrow时,要求endrow>startrow;为满足该特性,要求endrow的结尾字符为ASCII码中值最大的一位125,或者结尾字符的ASCII值大于startrow结尾字符的ASCII值。
9.一种域名资产数据存储系统,其特征在于,包括:
切分模块,负责根据域名的结构对域名进行切分,分成二级域名部分、域名前缀部分;
哈希计算模块,负责对切分得到的二级域名部分、域名前缀部分与域名对应的解析IP,分别进行哈希计算,得到三段字符串;
拼接组合模块,负责对所述三段字符串中的每一段字符串选取特定长度的字符,使用连接字符进行拼接组合,形成不同组合的字符串;
存储模块,负责根据业务需要,将不同组合的字符串携带相应的信息,存入到Hbase表中。
10.一种域名资产数据查询系统,其特征在于,包括权利要求9所述的域名资产数据存储系统以及一查询模块;所述查询模块利用Hbase的API,通过使用scan查询并设定查询条件的startrow和endrow,对存储的域名资产数据进行快速的查询。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811019784 | 2018-09-03 | ||
CN2018110197847 | 2018-09-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109657108A true CN109657108A (zh) | 2019-04-19 |
CN109657108B CN109657108B (zh) | 2021-10-15 |
Family
ID=66112374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811391835.9A Active CN109657108B (zh) | 2018-09-03 | 2018-11-21 | 一种域名资产数据存储和查询方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109657108B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532284A (zh) * | 2019-09-06 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 海量数据存储和检索方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078968A (zh) * | 2013-01-22 | 2013-05-01 | 华为技术有限公司 | 域名查询方法、ip分族方法、装置和设备 |
CN103220379A (zh) * | 2013-05-10 | 2013-07-24 | 广东睿江科技有限公司 | 一种域名反向解析方法和装置 |
CN103345475A (zh) * | 2013-06-06 | 2013-10-09 | 湖南神州祥网科技有限公司 | 一种基于被动方式的<ip,域名>信息获得和维护方法 |
CN103678443A (zh) * | 2012-09-19 | 2014-03-26 | 弗里塞恩公司 | 用于提供内容提供者指定的url关键字导航的方法及系统 |
-
2018
- 2018-11-21 CN CN201811391835.9A patent/CN109657108B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678443A (zh) * | 2012-09-19 | 2014-03-26 | 弗里塞恩公司 | 用于提供内容提供者指定的url关键字导航的方法及系统 |
CN103078968A (zh) * | 2013-01-22 | 2013-05-01 | 华为技术有限公司 | 域名查询方法、ip分族方法、装置和设备 |
CN103220379A (zh) * | 2013-05-10 | 2013-07-24 | 广东睿江科技有限公司 | 一种域名反向解析方法和装置 |
CN103345475A (zh) * | 2013-06-06 | 2013-10-09 | 湖南神州祥网科技有限公司 | 一种基于被动方式的<ip,域名>信息获得和维护方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532284A (zh) * | 2019-09-06 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 海量数据存储和检索方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109657108B (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857917B (zh) | 面向威胁情报的安全知识图谱构建方法及系统 | |
US8738656B2 (en) | Method and system for processing a group of resource identifiers | |
WO2017211051A1 (zh) | 目标对象的社交账号挖掘方法、服务器和存储介质 | |
US20110119268A1 (en) | Method and system for segmenting query urls | |
CN101369276B (zh) | 一种Web浏览器缓存数据的取证方法 | |
US9129010B2 (en) | System and method of partitioned lexicographic search | |
Baumgarten et al. | User-driven navigation pattern discovery from internet data | |
CN111459985A (zh) | 标识信息处理方法及装置 | |
KR20100106464A (ko) | 데이터 클러스터와 유의어의 탐색과 수정에 대한 방법 및 시스템 | |
CN101416179A (zh) | 用来向每个用户提供调整推荐字的系统和方法及记录用来执行上述方法的程序的计算机可读记录介质 | |
US20120233096A1 (en) | Optimizing an index of web documents | |
US11777983B2 (en) | Systems and methods for rapidly generating security ratings | |
Kucukyilmaz et al. | A machine learning approach for result caching in web search engines | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN106844529B (zh) | 缓存数据更新方法、装置和系统 | |
CN109614521B (zh) | 一种高效的隐私保护子图查询处理方法 | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
CN109657108A (zh) | 一种域名资产数据存储和查询方法和系统 | |
CN113495945A (zh) | 一种文本搜索方法、装置及存储介质 | |
CN114491232B (zh) | 信息查询方法、装置、电子设备和存储介质 | |
Jain et al. | Efficient web log mining using doubly linked tree | |
CN105468599A (zh) | 一种存储虚拟化系统的元数据层次管理方法 | |
CN112148925B (zh) | 用户标识关联查询方法、装置、设备及可读存储介质 | |
CN104102738B (zh) | 一种扩充实体库的方法及装置 | |
CN109885542A (zh) | 项目文件管理方法、装置及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |