CN104699762B - 用于识别主网址的方法及装置 - Google Patents

用于识别主网址的方法及装置 Download PDF

Info

Publication number
CN104699762B
CN104699762B CN201510072866.8A CN201510072866A CN104699762B CN 104699762 B CN104699762 B CN 104699762B CN 201510072866 A CN201510072866 A CN 201510072866A CN 104699762 B CN104699762 B CN 104699762B
Authority
CN
China
Prior art keywords
network address
access queue
access
network
queue
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.)
Active
Application number
CN201510072866.8A
Other languages
English (en)
Other versions
CN104699762A (zh
Inventor
姜辉
易鸿斌
陈唐晖
赵欣
杨猛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Anyi Hengtong Beijing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anyi Hengtong Beijing Technology Co Ltd filed Critical Anyi Hengtong Beijing Technology Co Ltd
Priority to CN201510072866.8A priority Critical patent/CN104699762B/zh
Publication of CN104699762A publication Critical patent/CN104699762A/zh
Application granted granted Critical
Publication of CN104699762B publication Critical patent/CN104699762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Abstract

本发明提供了用于识别主网址的方法及装置,其中的方法包括:在接收到网址访问请求情况下,将所述网址加入访问队列;判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长;若达到预定时长,则判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量;若达到预定数量,则确定所述访问队列开头的网址为主网址。本申请可兼容所有浏览器,在保证对系统性能的影响的情况下准确识别出主网址,为基于主网址执行的相关操作提供条件。

Description

用于识别主网址的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种用于识别主网址的方法及装置。
背景技术
在用户访问一个网页时,通常会伴随有大量的http请求(即网址访问请求),每个请求对应一个网址,即对应一个URL(Uniform Resoure Locator:统一资源定位符),通常将用户主动访问的URL称为主网址,伴随此主网址的http请求而非主网址的URL称为次网址。在所述大量的http请求中只有一个http请求对应的URL是主网址。比如用户访问www.aaaa.com,伴随www.aaaa.com这个主网址会有多个http get请求,但只有www.aaaa.com是主网址。在很多情况下需要识别出主网址,以便有效执行URL防护、网购保护或恶意流量分析等操作。
现有的识别主网址的方法是利用IE(Internet Explorer,网页浏览器)流量提供的BHO(Browser Helper Object,浏览器辅助对象)插件机制,获取IE浏览器的主网址,利用BHO获取主网址方法虽然能判别出主网址,但是该技术仅仅针对IE浏览器有效,对其它浏览器无效,也就无法识别出非IE浏览器的主网址。
发明内容
本发明解决的技术问题之一是提供用于识别主网址的方法及装置,在兼容各种浏览器的情况下可准确识别出主网址。
根据本发明一方面的一个实施例,提供了一种用于识别主网址的方法,包括:
在接收到网址访问请求情况下,将所述网址加入访问队列;
判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长;
若达到预定时长,则判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量;
若达到预定数量,则确定所述访问队列开头的网址为主网址。
可选地,将所述网址加入访问队列包括:
以四元组标识所述网址并将其加入到访问队列,其中,所述四元组包括:网址,来源,服务器位置,加入访问队列的时间。
可选地,将所述网址加入访问队列包括:
按照由访问队列开头到结尾的顺序依此放置加入的网址。
可选地,所述预定时长为3秒。
可选地,所述预定数量为4个。
可选地,还包括:
基于网址的后缀,过滤掉非预定后缀的网址。
可选地,还包括:
基于预设的非主网址库,过滤掉与所述非主网址库中的网址相同的网址。
可选地,在执行所述判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量的步骤之后,所述方法还包括:
从所述访问队列中删除所述开头的网址。
根据本发明另一方面的一个实施例,提供了一种用于识别主网址的装置,包括:
用于在接收到网址访问请求情况下,将所述网址加入访问队列的单元;
用于判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长的单元;
用于在访问队列开头的网址加入所述访问队列的时长达到预定时长情况下,判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量的单元;
用于在以所述访问队列开头的网址为来源的网址个数达到预定数量情况下,确定所述访问队列开头的网址为主网址的单元。
可选地,用于在接收到网址访问请求情况下,将所述网址加入访问队列的单元用于:
以四元组标识所述网址并将其加入到访问队列,其中,所述四元组包括:网址,来源,服务器位置,加入访问队列的时间。
可选地,用于在接收到网址访问请求情况下,将所述网址加入访问队列的单元用于:
按照由访问队列开头到结尾的顺序依此放置加入的网址。
可选地,所述预定时长为3秒。
可选地,所述预定数量为4个。
可选地,还包括:
用于基于网址的后缀,过滤掉非预定后缀的网址的单元。
可选地,还包括:
用于基于预设的非主网址库,过滤掉与所述非主网址库中的网址相同的网址的单元。
可选地,还包括:
用于从所述访问队列中删除所述开头的网址的单元。
本申请实施例利用网址来源引用个数是否达到预定数量来识别是否为主网址,该方法可兼容所有浏览器,在保证对系统性能的影响的情况下准确识别出主网址,为基于主网址执行的相关操作提供条件。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本发明并不仅限于这些实施例。而是,本发明的范围是广泛的,且意在仅通过后附的权利要求限定本发明的范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是根据本发明一个实施例的用于识别主网址的方法的流程图。
图2是根据本发明一个实施例的网址的referer关系树示意图。
图3是根据本发明另一个实施例的用于识别主网址的方法的流程图。
图4是根据本发明一个实施例的用于识别主网址的装置的结构示意图。
图5是根据本发明另一个实施例的用于识别主网址的装置的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于…之间”相比于“直接处于…之间”,“与…邻近”相比于“与…直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1是根据本发明一个实施例的用于识别主网址的方法的流程图。本发明中的方法主要通过计算机设备中的操作系统或处理控制器来完成。将操作系统或处理控制器称为用于识别主网址的装置。该计算机设备包括但不限于以下中的至少一个:用户设备、网络设备。用户设备包括但不限于计算机、智能手机、PDA等。网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
如图1中所示,该用户识别主网址的方法主要包括如下步骤:
S100、在接收到网址访问请求情况下,将所述网址加入访问队列;
本申请实施例识别主网址的操作是响应于接收到网址访问请求,该网址访问请求即http请求,每个http请求对应一个网址,也就是对于一个URL。因此,本申请实施例需要首先识别出http请求,其中识别http请求的方法可以包括:
利用DLL(Dynamic Link Library,动态链接库)注入技术将流量采集模块注入DLL浏览器,然后API(Application Programming Interface,应用程序编程接口)挂钩socket(用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源的函数)的send和WSAsend两个函数,从而在send函数发送流量时,该流量采集模块可以采集该流量,并从中识别出http请求。需要说明的是,由于并不是每次识别主网址操作中都需要执行该流量采集模块注入DLL浏览器以及API挂钩socket的send和WSAsend两个函数的操作,因此,该操作并非本实施例所述主网址识别方法的必须步骤,且本申请实施例对所述注入技术以及API挂钩socket的send和wSAsend函数的方法不做具体限制,其可采用已有技术中的任一种来实现。通过上述方法可识别出http请求,即识别出网址访问请求。
在接收到网址访问请求情况下,将该网址访问请求中的网址加入到预先建立的访问队列中,其中,将网址加入到访问队列时,需要遵循按照由访问队列开头到结尾的顺序依此放置加入的网址的原则,也就是先加入访问队列的网址放置于队列头部,之后加入的网址顺序向后放置。
另外,本申请实施例可以以四元组来标识所述网址并将其加入到访问队列,其中,所述四元组包括:网址,来源,服务器位置,加入访问队列的时间,例如,针对一个网址其对应的四元组可表示为<URL,referer,host,time_stamp>。其中URL表示网址,referer表示来源,host表示服务器位置,time_stamp表示该网址加入访问队列的时间。
对于各网址的四元组信息可根据http协议规范解析出http请求消息中的各个字段来获得。例如,四元组中的URL可由http请求消息中的host和get方法的URL构造生成,或由post方法的URL构造生成。其中referer为来源字段,一般伴随主网址发出的所有请求网址(包括主网址和次网址)的referer都为该主网址,其对应的四元组标识中的referer值为对应的主网址。本申请实施例可利用referer字段标识各网址之间的引用关系,构建referer树,各网址的referer关系树可如图2中所示。
S110、判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长;
本步骤的触发条件为有新的网址加入访问队列,也就是,如步骤S100中所述,将接收的网址访问请求中的网址加入到访问队列情况下,会触发本步骤的判断操作。
经过大量的测试发现,以一个主网址为referer的所有网址对应的http请求会在所述预定时长内发送完成,则在达到该预定时长时,可识别出以一个主网址为referer的所有次网址。其中一种实施例所述预定时长为3秒。当然本申请并不局限于此。
其中,对于第一个加入访问队列的网址来说,该网址本身即为访问队列开头的网址。
若未达到预定时长,则返回步骤S100,继续等待下一个网址加入所述访问队列时再判断。
S120、若达到预定时长,则判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量;
本步骤是在访问队列开头的网站加入访问队列的时长达到预定时长的情况下,判断以该访问队列开头的网址为referer的网址的个数是否达到预定数量。由前面所述,当访问队列开头的网站加入访问队列的时长达到预定时长时,以该网址为referer的所有网址均已加入该访问队列,并可识别到,因此,此时可准确判断出以该网址为referer的网址的个数。
经过大量数据分析发现,针对一个主网址,其referer的引用个数会达到预定数量,因此,通过判断以该访问队列开头的网址为来源的网站个数是否达到预定数量即可识别出该网站是否为主网址。其中所述预定数量可以为4个,则图2中所示的U1及U13为主网址。当然本申请并不局限于此。
可见,本步骤是在访问队列开头的网站加入访问队列的时长达到预定时长的情况下,判断加入到访问队列中的所有网址中,以该访问队列开头的网址为referer的网址的个数是否达到预定数量。
S130、若达到预定数量,则确定所述访问队列开头的网址为主网址;
S140、若未达到预定数量,则确定所述访问队列开头的网址为次网址。
S150、删除所述队列开头的网址。
步骤S130及S140即已完成识别该访问队列开头的网址是否为主网址,在完成该识别后,为避免队列过长,可将该识别后的队列开头的网址在队列中删除。
上述操作是在有新网址加入访问队列时对该访问队列开头的网址进行加入队列时长以及referer引用个数的判断,并在识别完成,得到识别结果情况下删除该访问队列开头的网址,该方案可避免队列过长,快速提取待判断的网址。可以理解的是,本申请实施例并不局限于此,例如,还可采用如下方案:
在识别完成一个网址后不立即删除该网址,对已经识别完成的网址进行标记或记录,则在有新网址加入访问队列时,判断该访问队列中未执行判断的头(按照访问队列开头到结尾的顺序,第一个未被识别的网址)一个网址,也就是,此时将访问队列中未执行判断的头一个网址作为所述的访问队列开头的网址,执行上面所述的判断操作。为避免队列过长,可固定时间间隔将识别完成的网址在该访问队列中删除,或者在已识别的网址个数达到规定个数时将已识别的网址在该访问队列中删除等等。因此,本步骤S150并非本实施例所述识别主网址的方法的必须步骤。
本申请实施例所述的用于识别主网址的方法,利用网址来源引用个数是否达到预定数量来识别是否为主网址,该方法可兼容所有浏览器,在保证对系统性能的影响的情况下准确识别出主网址,为基于主网址执行的相关操作提供条件,例如网址防护,网购保护,恶意流量分析和检测等等。
本申请另一实施例的用于识别主网址的方法的流程图如图3中所示,该方法主要包括如下步骤:
S300、在接收到网址访问请求情况下,将所述网址加入访问队列;
本申请实施例识别主网址的操作是响应于接收到网址访问请求,该网址访问请求即http请求,每个http请求对应一个网址,也就是对于一个URL。因此,本申请实施例需要首先识别出http请求,其中识别http请求的方法可以包括:
利用DLL(Dynamic Link Library,动态链接库)注入技术将流量采集模块注入DLL浏览器,然后API(Application Programming Interface,应用程序编程接口)挂钩socket(用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源的函数)的send和WSAsend两个函数,从而在send函数发送流量时,该流量采集模块可以采集该流量,并从中识别出http请求。需要说明的是,由于并不是每次识别主网址操作中都需要执行该流量采集模块注入DLL浏览器以及API挂钩socket的send和WSAsend两个函数的操作,因此,该操作并非本实施例所述主网址识别方法的必须步骤,且本申请实施例对所述注入技术以及API挂钩socket的send和wSAsend函数的方法不做具体限制,其可采用已有技术中的任一种来实现。通过上述方法可识别出http请求,即识别出网址访问请求。
在接收到网址访问请求情况下,将该网址访问请求中的网址加入到预先建立的访问队列中,其中,将网址加入到访问队列时,需要遵循按照由访问队列开头到结尾的顺序依此放置加入的网址的原则,也就是先加入访问队列的网址放置于队列头部,之后加入的网址顺序向后放置。
另外,本申请实施例可以以四元组来标识所述网址并将其加入到访问队列,其中,所述四元组包括:网址,来源,服务器位置,加入访问队列的时间,例如,针对一个网址其对应的四元组可表示为<URL,referer,host,time_stamp>。其中URL表示网址,referer表示来源,host表示服务器位置,time_stamp表示该网址加入访问队列的时间。
对于各网址的四元组信息可根据http协议规范解析出http请求消息中的各个字段来获得。例如,四元组中的URL可由http请求消息中的host和get方法的URL构造生成,或由post方法的URL构造生成。其中referer为来源字段,一般伴随主网址发出的所有请求网址(包括主网址和次网址)的referer都为该主网址,其对应的四元组标识中的referer值为对应的主网址。本申请实施例可利用referer字段标识各网址之间的引用关系,构建referer树,各网址的referer关系树可如图2中所示。
S310、判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长;
本步骤的触发条件为有新的网址加入访问队列,也就是,如步骤S100中所述,将接收的网址访问请求中的网址加入到访问队列情况下,会触发本步骤的判断操作。
经过大量的测试发现,以一个主网址为referer的所有网址对应的http请求会在所述预定时长内发送完成,则在达到该预定时长时,可识别出以一个主网址为referer的所有次网址。其中一种实施例所述预定时长为3秒。当然本申请并不局限于此。其中,对于第一个加入访问队列的网址来说,该网址本身即为访问队列开头的网址。
若未达到预定时长,则返回步骤S300,继续等待下一个网址加入所述访问队列时再判断。
S320、若达到预定时长,则判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量;
本步骤是在访问队列开头的网站加入访问队列的时长达到预定时长的情况下,判断以该访问队列开头的网址为referer的网址的个数是否达到预定数量。由前面所述,当访问队列开头的网站加入访问队列的时长达到预定时长时,以该网址为referer的所有网址均已加入该访问队列,并可识别到,因此,此时可准确判断出以该网址为referer的网址的个数。
经过大量数据分析发现,针对一个主网址,其referer的引用个数会达到预定数量,因此,通过判断以该访问队列开头的网址为来源的网站个数是否达到预定数量即可识别出该网站是否为主网址。其中所述预定数量可以为4个,则图2中所示的U1及U13为主网址,当然本申请并不局限于此。
可见,本步骤是在访问队列开头的网站加入访问队列的时长达到预定时长的情况下,判断加入到访问队列中的所有网址中,以该访问队列开头的网址为referer的网址的个数是否达到预定数量。
S330、若未达到预定数量,则确定所述访问队列开头的网址为次网址。
可选地,在执行完判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量的步骤后,不论识别结果是主网址还是次网址,可删除所述访问队列开头的网址,以避免队列过长。
可以理解的是,本申请实施例也可以不立即删除该方位队列开头的网址,也就是,在执行完判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量的步骤后,对已经判断完成的网址进行标记或记录,则在有新网址加入访问队列时,判断该访问队列中未执行判断的头(按照访问队列开头到结尾的顺序,第一个未被识别的网址)一个网址,也就是,此时将访问队列中未执行判断的头一个网址作为所述的访问队列开头的网址,执行上面所述的判断操作。为避免队列过长,可固定时间间隔将判断完成的网址在该访问队列中删除,或者在已判断的网址个数达到规定个数时将已执行完判断的网址在该访问队列中删除等等多种删除策略。
S340、若达到预定数量,则基于网址的后缀,过滤掉非预定后缀的网址;
通过上述步骤S320的判断,在达到预定数量情况下,可初步认为该访问队列开头的网址为主网址。为进一步提高主网址识别的准确性,降低误判率,本申请实施例在执行上述判断来源引用个数的操作后,进一步过滤掉非预定后缀的网址,其中,本申请实施例中所述预定后缀为所有主网址对应的后缀,包括但不限于如下后缀:
.swf、.jpg,.dat、.json、.gif、.css、.png、.cur、.flv、.f4v、.bmp、.ico、.bmp
其中,可将所有预定后缀保存于指定位置,通过将所述访问队列开头的网址的后缀与保存的预定后缀对比,若存在一致的后缀,则保留该网址,否则,过滤掉该访问队列开头的网址。
S350、基于预设的非主网址库,过滤掉与所述非主网址库中的网址相同的网址。
由于当前很多网页都会嵌入联盟推广的子网页,该类子网页对应网址的请求与主网址类似,为了防止将此类联盟推广网址误判为主网址,进一步提高主网址识别的准确性,降低误判率,本申请实施例还可基于预设的非主网址库过滤掉与所述非主网址库中的网址相同的网址。本实施例中的非主网址库为用于保存所有广告联盟网址的库,具体的,可保存所有广告联盟网址的host(即服务器位置),则通过将访问队列开头的网址(例如,该网址的四元组信息)与该非主网址库中的网址比对,若存在与该访问队列开头的网址一致的网址,则可确定该网址非主网址;否则,可确定该网址为主网址。
本申请实施例将上述主网址识别方法划分为三个识别操作,其中,步骤S300~S330称为来源引用个数识别操作;将步骤S340称为网址后缀识别操作;将步骤S350称为非主网址库识别操作。那么,需要说明的是,单独每一个识别操作或任意两种或三种识别操作的组合均可以识别出主网址,只是识别准确度的高低不同。且可以理解的是,三个主网址识别操作并无执行先后顺序的限制,只是不同的执行顺序会带来不同系统计算量。
本申请实施例所述的用于识别主网址的方法,利用三个主网址识别操作来识别主网址,该方法可兼容所有浏览器,具有较高的识别准确性,为基于主网址执行的相关操作提供条件,例如网址防护,网购保护,恶意流量分析和检测等等。
基于上述方法同样的思路,本申请实施例还提供一种用于识别主网址的装置,如图4中所示为该装置一种实施例结构示意图,该装置主要包括:
用于在接收到网址访问请求情况下,将所述网址加入访问队列的单元400,以下简称队列加入单元400;
用于判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长的单元410,以下简称时长判断单元410;
用于在访问队列开头的网址加入所述访问队列的时长达到预定时长情况下,判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量的单元420,以下简称来源引用个数判断单元420;
用于在以所述访问队列开头的网址为来源的网址个数达到预定数量情况下,确定所述访问队列开头的网址为主网址的单元430,以下简称主网址识别单元430。
下面对上述各单元做进一步详细介绍。
本申请实施例中队列加入单元400是响应于接收到网址访问请求,将网址加入访问队列。该网址访问请求即http请求,每个http请求对应一个网址,也就是对于一个URL。因此,本申请实施例的队列加入单元400需要首先识别出http请求,其中识别http请求的方法可以包括:
利用DLL(Dynamic Link Library,动态链接库)注入技术将流量采集模块注入DLL浏览器,然后API(Application Programming Interface,应用程序编程接口)挂钩socket(用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源的函数)的send和WSAsend两个函数,从而在send函数发送流量时,该流量采集模块可以采集该流量,并从中识别出http请求。需要说明的是,本申请实施例对所述注入技术以及API挂钩socket的send和WSAsend函数的方法不做具体限制,其可采用已有技术中的任一种来实现。队列加入单元400通过上述方法可识别出http请求,即识别出网址访问请求。
队列加入单元400在接收到网址访问请求情况下,将该网址访问请求中的网址加入到预先建立的访问队列中,其中,将网址加入到访问队列时,需要遵循按照由访问队列开头到结尾的顺序依此放置加入的网址的原则,也就是先加入访问队列的网址放置于队列头部,之后加入的网址顺序向后放置。
另外,本申请实施例队列加入单元400可以以四元组来标识所述网址并将其加入到访问队列,其中,所述四元组包括:网址,来源,服务器位置,加入访问队列的时间,例如,针对一个网址其对应的四元组可表示为<URL,referer,host,time stamp>。其中URL表示网址,referer表示来源,host表示服务器位置,time_stamp表示该网址加入访问队列的时间。
对于各网址的四元组信息可根据http协议规范解析出http请求消息中的各个字段来获得。例如,四元组中的URL可由http请求消息中的host和get方法的URL构造生成,或由post方法的URL构造生成。其中referer为来源字段,一般伴随主网址发出的所有请求网址(包括主网址和次网址)的referer都为该主网址,其对应的四元组标识中的referer值为对应的主网址。本申请实施例可利用referer字段标识各网址之间的引用关系,构建referer树,各网址的referer关系树可如图2中所示。
时长判断单元410的触发条件为有新的网址加入访问队列,也就是,在队列加入单元400将接收的网址访问请求中的网址加入到访问队列情况下,会触发时长判断单元410执行判断操作。
经过大量的测试发现,以一个主网址为referer的所有网址对应的http请求会在所述预定时长内发送完成,则在达到该预定时长时,可识别出以一个主网址为referer的所有次网址。其中一种实施例所述预定时长为3秒。当然本申请并不局限于此。
若未达到预定时长,则继续等待下一个网址加入所述访问队列时再判断。
来源引用个数判断单元420是在时长判断单元410判断结果为达到预定时长情况下,判断以该访问队列开头的网址为referer的网址的个数是否达到预定数量。由前面所述,当访问队列开头的网站加入访问队列的时长达到预定时长时,以该网址为referer的所有网址均已加入该访问队列,并可识别到,因此,此时来源引用个数判断单元420可准确判断出以该网址为referer的网址的个数。
经过大量数据分析发现,针对一个主网址,其referer的引用个数会达到预定数量,因此,通过判断以该访问队列开头的网址为来源的网站个数是否达到预定数量即可识别出该网站是否为主网址。其中所述预定数量可以为4个,则图2中所示的U1及U13为主网址,当然本申请并不局限于此。
可见,来源引用个数判断单元420是在访问队列开头的网站加入访问队列的时长达到预定时长的情况下,判断加入到访问队列中的所有网址中,以该访问队列开头的网址为referer的网址的个数是否达到预定数量。
主网址识别单元430是依据来源引用个数判断单元420的判断结果来识别访问队列开头的网址是否为主网址,其中,若达到预定数量,则确定所述访问队列开头的网址为主网址;若未达到预定数量,则确定所述访问队列开头的网址为次网址。
本实施例所述用于识别主网址的装置的另一实施例的结构如图5中所示,该装置还可包括:
用于从所述访问队列中删除所述开头的网址的单元440,以下简称网站删除单元440。
在来源引用个数判断单元420执行完判断操作后,不论识别结果是主网址还是次网址,该网站删除单元440可删除所述访问队列开头的网址,以避免队列过长。
可以理解的是,本申请实施例也可以不立即删除该方位队列开头的网址,也就是,在来源引用个数判断单元420执行完判断操作后,网站删除单元440对已经判断完成的网址进行标记或记录,则在有新网址加入访问队列时,时长判断单元410以及来源引用个数判断单元420判断该访问队列中未执行判断的头(按照访问队列开头到结尾的顺序,第一个未被识别的网址)一个网址,也就是,此时将访问队列中未执行判断的头一个网址作为所述的访问队列开头的网址,执行上面所述的判断操作。为避免队列过长,该网站删除单元440可固定时间间隔将判断完成的网址在该访问队列中删除,或者在已判断的网址个数达到规定个数时将已执行完判断的网址在该访问队列中删除等等多种删除策略。
为进一步提高主网址识别的准确性,降低误判率,本实施例所述装置还可包括:
用于基于网址的后缀,过滤掉非预定后缀的网址的单元450,以下简称基于网址后缀过滤的单元450。
本申请实施例的基于网址后缀过滤的单元450是用于进一步过滤掉非预定后缀的网址,其中,本申请实施例中所述预定后缀为所有主网址对应的后缀,包括但不限于如下后缀:
.swf、.jpg,.dat、.json、.gif、.css、.png、.cur、.f1v、.f4v、.bmp、.ico、.bmp
其中,可将所有预定后缀保存于指定位置,通过将所述访问队列开头的网址的后缀与保存的预定后缀对比,若预定后缀中存在与所述访问队列开头的网址的后缀一致的后缀,则保留该网址,否则,过滤掉该访问队列开头的网址。通过该过滤操作过滤后得到的网址可初步认定为主网址。
同样,为进一步提高主网址识别的准确性,降低误判率,本实施例所述装置还可包括:
用于基于预设的非主网址库,过滤掉与所述非主网址库中的网址相同的网址的单元460,以下简称基于非主网址库过滤的单元460。
由于当前很多网页都会嵌入联盟推广的子网页,该类子网页对应网址的请求与主网址类似,为了防止将此类联盟推广网址误判为主网址,进一步提高主网址识别的准确性,降低误判率,本申请实施例的基于非主网址库过滤的单元460还可基于预设的非主网址库过滤掉与所述非主网址库中的网址相同的网址。本实施例中的非主网址库为用于保存所有广告联盟网址的库,具体的,可保存所有广告联盟网址的host(即服务器位置),则基于非主网址库过滤的单元460通过将访问队列开头的网址(例如,该网址的四元组信息)与该非主网址库中的网址比对,若存在与该访问队列开头的网址一致的网址,则可确定该网址非主网址;否则,可确定该网址为主网址。
需要说明的是,上述基于网址后缀过滤的单元450及基于非主网址库过滤的单元460可仅包括其中任一个。且该两个单元的过滤操作与来源引用个数判断单元420的判断操作并无执行先后顺序的限制,只是不同的执行顺序会带来不同系统计算量。
本申请实施例所述的用于识别主网址的方法,利用网址来源引用个数是否达到预定数量来识别是否为主网址,该方法可兼容所有浏览器,在保证对系统性能的影响的情况下准确识别出主网址,为基于主网址执行的相关操作提供条件,例如网址防护,网购保护,恶意流量分析和检测等等。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (16)

1.一种用于识别主网址的方法,其中,包括:
在接收到网址访问请求情况下,将所述网址加入访问队列;
判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长;
若达到预定时长,则判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量;
若达到预定数量,则确定所述访问队列开头的网址为主网址。
2.根据权利要求1所述的方法,其中,将所述网址加入访问队列包括:
以四元组标识所述网址并将其加入到访问队列,其中,所述四元组包括:网址,来源,服务器位置,加入访问队列的时间。
3.根据权利要求1或2所述的方法,其中,将所述网址加入访问队列包括:
按照由访问队列开头到结尾的顺序依此放置加入的网址。
4.根据权利要求1所述的方法,其中,所述预定时长为3秒。
5.根据权利要求1所述的方法,其中,所述预定数量为4个。
6.根据权利要求1所述的方法,其中,还包括:
基于网址的后缀,过滤掉非预定后缀的网址。
7.根据权利要求1或6所述的方法,其中,还包括:
基于预设的非主网址库,过滤掉与所述非主网址库中的网址相同的网址。
8.根据权利要求1所述的方法,其中,在执行所述判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量的步骤之后,所述方法还包括:
从所述访问队列中删除所述开头的网址。
9.一种用于识别主网址的装置,其中,包括:
用于在接收到网址访问请求情况下,将所述网址加入访问队列的单元;
用于判断所述访问队列开头的网址加入所述访问队列的时长是否达到预定时长的单元;
用于在访问队列开头的网址加入所述访问队列的时长达到预定时长情况下,判断以所述访问队列开头的网址为来源的网址个数是否达到预定数量的单元;
用于在以所述访问队列开头的网址为来源的网址个数达到预定数量情况下,确定所述访问队列开头的网址为主网址的单元。
10.根据权利要求9所述的装置,其中,用于在接收到网址访问请求情况下,将所述网址加入访问队列的单元用于:
以四元组标识所述网址并将其加入到访问队列,其中,所述四元组包括:网址,来源,服务器位置,加入访问队列的时间。
11.根据权利要求9或10所述的装置,其中,用于在接收到网址访问请求情况下,将所述网址加入访问队列的单元用于:
按照由访问队列开头到结尾的顺序依此放置加入的网址。
12.根据权利要求9所述的装置,其中,所述预定时长为3秒。
13.根据权利要求9所述的装置,其中,所述预定数量为4个。
14.根据权利要求9所述的装置,其中,还包括:
用于基于网址的后缀,过滤掉非预定后缀的网址的单元。
15.根据权利要求9或14所述的装置,其中,还包括:
用于基于预设的非主网址库,过滤掉与所述非主网址库中的网址相同的网址的单元。
16.根据权利要求9所述的装置,其中,还包括:
用于从所述访问队列中删除所述开头的网址的单元。
CN201510072866.8A 2015-02-11 2015-02-11 用于识别主网址的方法及装置 Active CN104699762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510072866.8A CN104699762B (zh) 2015-02-11 2015-02-11 用于识别主网址的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510072866.8A CN104699762B (zh) 2015-02-11 2015-02-11 用于识别主网址的方法及装置

Publications (2)

Publication Number Publication Date
CN104699762A CN104699762A (zh) 2015-06-10
CN104699762B true CN104699762B (zh) 2018-08-10

Family

ID=53346883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510072866.8A Active CN104699762B (zh) 2015-02-11 2015-02-11 用于识别主网址的方法及装置

Country Status (1)

Country Link
CN (1) CN104699762B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1280734A (zh) * 1997-10-28 2001-01-17 互联网号码公司 用于访问在一个网络上的信息的方法和系统
CN1783088A (zh) * 2004-12-01 2006-06-07 佳能株式会社 Web浏览器的操作方法和操作装置
CN102063454A (zh) * 2010-05-31 2011-05-18 百度在线网络技术(北京)有限公司 一种搜索与应用相结合的方法和设备
CN102932400A (zh) * 2012-07-20 2013-02-13 北京网康科技有限公司 一种识别统一资源定位符主链接的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1280734A (zh) * 1997-10-28 2001-01-17 互联网号码公司 用于访问在一个网络上的信息的方法和系统
CN1783088A (zh) * 2004-12-01 2006-06-07 佳能株式会社 Web浏览器的操作方法和操作装置
CN102063454A (zh) * 2010-05-31 2011-05-18 百度在线网络技术(北京)有限公司 一种搜索与应用相结合的方法和设备
CN102932400A (zh) * 2012-07-20 2013-02-13 北京网康科技有限公司 一种识别统一资源定位符主链接的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
从WEB日志到点击流;joegh;《网站数据分析》;20100316;正文第1-2页 *

Also Published As

Publication number Publication date
CN104699762A (zh) 2015-06-10

Similar Documents

Publication Publication Date Title
US9531734B2 (en) Method and apparatus for intercepting or cleaning-up plugins
US8892635B2 (en) Techniques for detecting inactive browser windows
CN103348346B (zh) 用于检测新浏览器窗口的方法及系统
CN110062025A (zh) 数据采集的方法、装置、服务器及存储介质
CN108293081A (zh) 通过用户界面事件的程序重放深度链接到移动应用状态
WO2018121442A1 (zh) 软件信息的处理方法和装置及存储介质、电子装置
WO2014039399A2 (en) Method and system for monitoring advertisement displays
CN103023906A (zh) 针对远程过程调用协议进行状态跟踪的方法及系统
CN102592089B (zh) 网页重定向跳转漏洞检测方法及装置
CN103885865B (zh) 一种传感器管理方法及装置
CN107809383A (zh) 一种基于mvc的路径映射方法及装置
CN104572446A (zh) 一种自动化测试方法及系统
CN105354498A (zh) 一种注册表的操作方法和相关装置及设备
CN108196940A (zh) 删除容器的方法和相关设备
CN103838728B (zh) 网页信息的处理方法及浏览器
CN104699762B (zh) 用于识别主网址的方法及装置
CN103036895B (zh) 一种状态跟踪方法及系统
CA2788100C (en) Crawling of generated server-side content
CN105824656A (zh) 用于检测应用安装状态的方法、移动终端和服务器
CN108134803A (zh) 一种url攻击防护方法及装置
CN104869033B (zh) 一种用于确定死链接的方法和装置
CN113992392A (zh) 一种移动互联网流量防劫持方法和系统
CN103581936A (zh) 在移动终端中用于确定网络状态的方法、装置和设备
CN103544354B (zh) 基于网络的并行计算机动态仿真方法和装置
CN104079594B (zh) 用于在封闭式系统中实现网络资源下载的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190821

Address after: 100085 Beijing, Haidian District, No. ten on the ground floor, No. 10 Baidu building, layer 2

Patentee after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Address before: 100091 C, block, building No. 4, Zhongguancun Software Park, No. 8, West flourishing West Road, Beijing, China 1-03

Patentee before: Pacify a Heng Tong (Beijing) Science and Technology Ltd.

TR01 Transfer of patent right