终端识别的方法、装置及系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种终端识别的方法、装置及系统。
背景技术
通常,计算机、手机等终端都分配有一个或多个终端标识,用于对终端进行唯一标记。实际应用中,国际移动用户识别码(International Mobile SubscriberIdentification Number,简称IMSI)、移动设备国际身份码(International MobileEquipment Identification Number,简称IMEI)、介质访问控制(Media Access Control,简称MAC)地址、网间协议(Internet Protocol,简称IP)地址等标识都可用作终端标识。通过终端标识,网络可以对不同终端进行识别和管理,实现全网的业务运营。例如,在局域网内,服务器可以通过终端业务请求中的终端标识识别出进行业务请求的终端,并对该终端进行业务响应;或者,服务器也可以根据终端标识对网内所有终端进行识别和统计,并根据统计结果对网内终端进行全网升级或全网扫描。
由此可见,终端标识的唯一性对于终端识别而言具有至关重要的作用。但是在实际应用中,局域网常常会通过ghost等备份手段对终端进行批量部署,ghost方式除了能够对终端硬盘中的数据进行备份外,还会对终端标识进行备份,由此使得不同终端具有相同的终端标识,进而干扰服务器对终端的识别。例如,假设局域网中已部署有终端A至终端C共3台终端,当新加入终端D和终端E时,服务器根据终端C对这2台终端进行部署,由此导致终端D和终端E的终端标识与终端C的终端标识相同,因而在服务器侧统计的网内终端数量仍为3台,与实际情况不符。
发明内容
本发明提供了一种终端识别的方法、装置及系统,能够解决现有技术中因终端标识相同而导致的终端误识别的问题。
为解决上述技术问题,一方面,本发明提供了一种终端识别的方法,该方法包括:
在接收到终端标识时,为终端标识分配键值;
将键值下发给上报终端标识的终端,以便终端将键值与终端标识进行绑定;
当再次接收到相同的终端标识时,根据终端标识的键值确定两次接收到的终端标识是否为同一终端所上报。
另一方面,本发明还提供了一种终端识别的装置,该装置包括:
接收单元,用于接收终端标识;
分配单元,用于为接收单元接收的终端标识分配键值;
发送单元,用于将分配单元分配的键值下发给上报终端标识的终端,以便终端将键值与终端标识进行绑定;
确定单元,用于当接收单元再次接收到相同的终端标识时,根据分配单元为终端标识分配的键值确定两次接收到的终端标识是否为同一终端所上报。
再一方面,本发明还提供了一种终端识别的系统,该系统包括服务器和终端,其中,服务器包含如前第二方面所指的装置;
终端,用于向服务器上报自身的终端标识;
服务器,用于在接收到终端标识时,为终端标识分配键值,将键值下发给上报终端标识的终端;
终端,还用于将服务器下发的键值与终端标识进行绑定;
服务器,还用于当再次接收到相同的终端标识时,根据终端标识的键值确定两次接收到的终端标识是否为同一终端所上报。
借由上述技术方案,本发明提供的终端识别的方法、装置及系统,能够在终端上报终端标识时,为终端标识分配一个服务器侧生成的键值,当终端再次上报终端标识时,服务器可以通过绑定终端标识的键值确定发送相同终端标识的终端是否为同一个终端。与现有技术相比,本发明中识别终端的依据在于终端标识与键值的组合,而非局限于终端标识本身,因此可以在多终端共用同一终端标识的情况下对不同终端进行识别。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例中一种终端识别的方法流程图;
图2示出了本发明实施例中另一种终端识别的方法流程图;
图3示出了本发明实施例中再一种终端识别的方法流程图;
图4示出了本发明实施例中一种终端标识的示意图;
图5示出了本发明实施例中另一种终端标识的示意图;
图6示出了本发明实施例中一种比对附属标识的示意图;
图7示出了本发明实施例中一种终端识别的装置的结构示意图;
图8示出了本发明实施例中另一种终端识别的装置的结构示意图;
图9示出了本发明实施例中一种终端识别的系统示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了在多终端共用同一终端标识的情况下对不同终端进行识别,本发明实施例提供了一种终端识别的方法,如图1所示,该方法包括:
101、在接收到终端标识时,服务器为终端标识分配键值。
通常,终端在向网络侧请求各种业务时,会在业务请求中携带自身的终端标识。或者,在服务器向局域网内的终端主动发起业务时(例如进行全网升级或全网病毒扫描等),服务器也可以要求终端在业务响应中携带自身的终端标识。
本实施例中,服务器接收的终端标识可以为局域网中任意一个终端上报的终端标识,对于多终端共用同一终端标识的情况,服务器接收的终端标识也包括不同终端上报的相同的终端标识。此外,服务器接收的终端标识还可以是同一个终端在不同业务请求/响应中先后上报的终端标识。本实施例仅从服务器侧角度对终端标识的接收进行定义,无采用过上述何种方式上报终端标识,服务器均不对上报终端标识的终端进行区分(实际上服务器暂且还无法进行区分)。
在接收到终端标识后,服务器为接收的终端标识分配一个键值,该键值的生成规则独立于终端标识的生成,完全由服务器侧制定。实际应用中,服务器可以对键值进行唯一分配(即分配的键值无重复),也可以对不同的终端标识或不同时刻接收的相同终端标识重复分配键值,使其具有相同的键值,本实施不对键值的分配进行限制。
需要说明的是,本步骤中服务器分配键值的对象为终端标识,而非终端(在接收终端标识时,服务器还无法判断相同终端标识是否为不同终端所上报)。实际上更准确的说,服务器分配键值的对象为接收终端标识的“动作”,即使服务器接收了不同终端上报的多个相同终端标识,服务器也会分别为多次接收的终端标识分配键值。
102、服务器将键值下发给上报终端标识的终端,以便终端将键值与终端标识进行绑定。
在为接收到的终端标识分配键值后,服务器将分配的键值下发给上报终端标识的终端。需要注意的是,此时服务器仍然无法区分相同的终端标识是否由不同终端发送。服务器仅根据终端标识的来源(例如源IP地址)向发送终端标识的终端“返回”键值。在接收到服务器发送的键值后,上报终端标识的终端将该键值与自身的终端标识(即上报的终端标识)进行绑定,在此后业务请求/响应中,终端均向服务器上报绑定了键值的终端标识。
103、当再次接收到相同的终端标识时,服务器根据终端标识的键值确定两次接收到的终端标识是否为同一终端所上报。
当再次接收到相同的终端标识时,服务器根据终端标识的键值确定两次接收到的终端标识是否为同一终端所上报。本步骤中所指的再次接收相同终端标识包含不同情况:1、同一终端在此后的业务请求/响应中再次上报相同的终端标识;2、其他终端上报的、与该终端相同的终端标识。
为对终端进行明确识别,服务器可以基于绑定于终端标识的键值对上述不同情况进行区分。例如,服务器可以通过再次接收的终端标识是否携带有键值的方式对先后两次上报相同终端标识的终端进行识别,或者服务器也可以通过对先后两次接收的终端标识的键值的比较,对先后两次上报相同终端标识的终端进行识别。
现有技术中,由于ghost的原因,局域网中可能存在不同终端共用同一终端标识的情况。此种情况的出现会对局域网的运营和管理造成较大影响。例如,最为基本的,当终端标识重复时,网管人员在服务端根据终端标识得出的全网终端数量会存在误差;或者,在进行全网病毒扫描时,网管人员仅对特定操作系统的终端进行病毒扫描,如果此时不同操作系统的终端共用同一个终端标识,那么基于终端标识对扫描对象进行确定就会导致其他操作系统的终端被加入到扫描队列中;再例如,在下发病毒专杀脚本时,如果网管人员仅依据终端标识对报毒终端进行定位,那么则会向使用相同终端标识的正常终端一同下发病毒专杀脚本,同时服务器侧的数据统计也会出错。
基于上述种种事例,在存在终端标识重复的情况下,对网内终端的识别就变得至关重要。实际应用中网络的部署规模通常较大,一些场景下还会出现多级网络的架构,当网内终端数量众多时,依赖网管人员手动查找的方式排查“克隆”终端,其工作量往往难以想象。并且网管人员对终端侧行为的监控能力有限,因此人工处理的方式一般滞后性较强,当发现“克隆”终端时,往往网络运维已经受到影响。因此,对局域网内终端进行有效识别就成为了现实应用中一个亟待解决的问题。本发明实施例即是针对这一需求,提出了一种终端识别的方法,通过键值分配以及键值比对的方式,实现服务器侧的终端识别,能够有效识别出共用相同终端标识的终端。
下面,作为对图1所示方法的实现,本发明的另一实施例将给出两种终端识别的方案。其中,第一种终端识别方案仅在服务器首次接收到某个终端标识时为其分配键值,此后当再次接收到相同的终端标识时,服务器通过判断终端标识是否携带键值的方式对不同终端进行识别。具体的,如图2所示,第一种实现方案包括如下步骤:
201、在首次接收到某个终端标识时,服务器为终端标识分配键值。
本步骤中所指的首次接收终端标识是以服务器侧为角度界定的,无论是同一终端先后上报同一终端标识,还是不同终端分别上报相同的终端标识,服务器仅在最先接收该终端标识时为其分配键值,此后再次接收的相同终端标识则不再分配任何键值。
示例性的,假设局域网内有A、B、C3台终端,其中终端A和终端C共用一个终端标识m,终端B唯一拥有终端标识n。当终端A第一次上报终端标识m时,服务器为终端标识m分配一个键值,此后当终端C第一次上报终端标识m、或者终端A再次上报终端标识m时,服务器不再为终端标识m分配键值。但是在终端A第一次上报终端标识m后,当终端B第一次上报终端标识n时,服务器为终端标识n分配一个键值。
在为首次接收的终端标识分配键值后,服务器将该终端标识(或者终端标识+键值)记录在标识列表中,以便后续再次接收终端标识时比对之用。当服务器再次接收到一个终端标识时,服务器对标识列表进行遍历,若查找到该终端标识,则表明已为该终端标识分配过键值,直接跳转至步骤203;若未查找到该终端标识,则表明尚未为该终端标识非配键值,服务器执行本步骤,为其分配键值(例如为终端标识n分配键值)。
需要说明的是,本步骤中的键值仅用于对终端标识的上报状态进行标记,即仅用于对终端标识是否为首次上报的状态进行标记,因此不必限定键值的分配唯一无重复。服务器可以为所有首次上报的终端标识分配相同的键值,例如服务器为终端标识m和终端标识n均分配键值“345”。因此,在实际应用中,键值也可以为一个仅具有“true”和“false”2种状态的标志位(当然这2种状态也可以为“1”和“0”),本方案不对键值的具体形式进行限制。
202、服务器将键值下发给上报终端标识的终端,以便终端将键值与终端标识进行绑定。
在为首次接收到的终端标识分配键值后,服务器将该键值下发给上报该终端标识的终端。需要说明的是,服务器下发键值的对象为首次发送终端标识的终端,而非是将键值发送给共用该终端标识的多个终端(此时服务器无法识别终端标识是否被共用,因此也无法发送给多个终端)。例如,若终端A首先上报了终端标识m,则服务器将终端标识m的键值发送给终端A,但并不发送给终端C;反之,若终端C首先上报了终端标识m,则服务器仅将终端标识m的键值发送给终端C。
在接收到键值后,终端将该键值与自身的终端标识进行绑定,在此后的业务请求/响应中,终端将键值与终端标识一并上报给服务器。
本步骤中,服务器仅为首次上报的终端标识分配键值的目的在于,对首次上报终端标识的终端进行标记,并以其为标尺对其他上报相同终端标识的终端进行区分。
203、当再次接收到相同的终端标识时,服务器检测再次接收到的终端标识是否绑定有键值,得出第一检测结果。
在再次接收终端标识时,服务器不必区分再次接收的终端标识是否来自于同一个终端(事实上服务器也无法区分),只要不为首次接收该终端标识即可。本步骤中,当服务器接收到一个终端标识时,对标识列表进行遍历,如果接收的终端标识存在于标识列表中,则确定再次接收到了相同的终端标识。
例如,在终端A首次上报终端标识m后,若终端A再次上报终端标识m,则服务器再次接收到相同的终端标识m,或者若终端C首次上报(或再次上报)终端标识m,则服务器再次接收到相同的终端标识m。
服务器检测再次接收到的终端标识是否绑定有键值,得出第一检测结果。若第一检测结果为是,则表明本次上报终端标识的终端为首次上报该终端标识的终端;若所述第一检测结果为否,则表明本次上报终端标识的终端不为首次上报该终端标识的终端,由此对上报相同终端标识的不同终端进行识别。
如前所述,由于服务器仅为首次上报终端标识的终端下发键值,并且服务器不再为后续再次上报相同终端标识的终端分配和下发键值,因此当其他终端上报相同的终端标识时,服务器可以通过终端标识中是否绑定有键值的方式判断在后上报终端标识的终端是否为首次上报终端标识的终端。
例如在上述示例中,终端A作为首次上报终端标识m的终端,获得服务器分配的键值。后续当终端A再次上报终端标识m时,由于其绑定有服务器分配的键值,因此服务器能够识别出该终端为此前获得键值的终端A。而此后当终端C上报终端标识m时,由于其上报的终端标识m没有绑定服务器分配的键值,因此服务器能够识别出终端C与首次上报终端标识m的终端A不同。
以上对第一种终端识别方案的实现过程进行了介绍,下面对第二种终端识别方案进行介绍。在第二种终端识别方案中,服务器不对终端标识是否为首次进行区分,在接收到任意终端标识时,只要该终端标识未绑定有键值,服务器就会为其分配一个唯一的键值,在后续的业务请求/响应过程中,服务器通过比较键值的方式对不同终端进行识别。具体的,如图3所示,第二种终端识别的方案包括如下步骤:
301、在接收到任意终端标识时,服务器判断该终端标识是否绑定有键值。
若接收的终端标识绑定有键值,则跳转执行步骤304,若接收的终端标识未绑定键值,则执行步骤302。
302、若接收的终端标识未绑定键值,则服务器为其分配键值。
与图2步骤201不同的是,本方案中,服务器不再对终端标识是否为首次上报进行区分,只要接收的终端标识未绑定有键值,服务器就为其分配一个键值。
假设终端A首次上报终端标识m,此后终端A和终端C分别上报终端标识m。在图2所示方案中,服务器仅会在终端A首次上报终端标识m时,为终端标识m分配键值并下发给终端A,后续终端C上报终端标识m时,服务器不再为其下发键值。而在图3所示的方案中,当终端A再次上报终端标识m时,由于其绑定有此前分配的键值,因此服务器不会再向终端A下发新的键值,但与图2所示方案不同的是,当终端C上报终端标识m时(终端C此前未上报过),由于其上报的终端标识m未绑定有键值,因此服务器会在已为终端A分配过键值的基础上,进一步为终端C分配一个新的键值。
在图3所示的方案中,服务器分配键值的依据为接收的终端标识是否绑定有键值,其本质相当于以终端为“对象”,为每一个没有得到键值的终端下发一个键值。基于该方式,本方案中需要要求服务器分配的键值无重复,即服务器分配的每一个键值都是唯一的,这一点与图2所示方案有所不同。在图2所示方案中,键值仅用于对终端标识的上报状态进行标记(即用于标记服务器首次接收的终端标识),因此图2方案中,服务器分配的键值可以重复。
示例性的,本步骤中,当终端A第一次上报终端标识m时,服务器为终端A分配键值x,此后当终端C第一次上报终端标识m时,服务器为终端C分配另一个键值y,当终端B上报终端标识n时,服务器为终端B再分配一个键值z,由此,终端A、B、C都会得到一个唯一的键值。
与图2所示方案类似的,在分配完键值后,服务器将键值与对应键值的终端标识保存在标识列表中,以便后续进行比对之用。但与图2所示方案不同的是,由于服务器后续比对的对象为终端标识的键值,因此在本方案中服务器需要将对应的终端标识的键值也保存到标识列表中。示例性的,服务器侧保存的标识列表如图4所示。
303、服务器将键值下发给上报终端标识的终端,以便终端将键值与终端标识进行绑定。
在执行完步骤302后,服务器执行步骤303。步骤303的实现方式与图2步骤202的实现方式相同,服务器将分配的键值下发给上报对应终端标识的终端,以便终端将键值与终端标识进行绑定。
在上述示例中,终端A将键值x绑定到终端标识m上,终端C将键值y绑定到终端标识m上,终端B将键值z绑定到终端标识n上。在后续的业务请求/响应过程中,各个终端上报绑定有键值的终端标识。
304、当再次接收到相同的终端标识时,服务器检测再次接收到的终端标识的键值与前次接收到的相同终端标识的键值是否相等,得出第二检测结果。
在执行完步骤303后,服务器对再次接收到的终端标识的键值和前次接收到的相同终端标识的键值进行检测,若第二检测结果为是,则服务器确定两次接收到的终端标识为同一终端所上报,若第二检测结果为否,则服务器确定两次接收到的终端标识为不同终端所上报。
例如,终端A首先上报绑定有键值x的终端标识m,此后终端C又上报了绑定有键值y的终端标识m。两个终端上报的终端标识相同,但是键值不同,由此服务器可以判断出先后上报终端标识m的终端为不同的终端。如果终端A在首先上报终端标识m后又再次上报了终端标识m,则由于先后上报的终端标识m的键值均为x,因此服务器可以判断出先后上报终端标识m的终端同为终端A。
图3所示的方案能够在接收的终端标识未绑定键值时,为其分配一个唯一的键值,当后续再次接收到相同的终端标识时,能够通过对键值的比较判断出两次上报相同终端标识的终端是否为同一中端,由此实现对终端的识别。
进一步的,为消除不同终端共用同一终端标识对网络运维造成的影响,服务器还可以在识别出上报同一终端标识的终端为不同终端之后,指示在后上报的终端更新终端标识,使其更新后的终端标识不同于在先上报终端的终端标识,从而使得各个终端的终端标识唯一,由此在后续的业务请求/响应过程中,基于终端标识对不同终端进行识别。具体的,在上述各实施例的基础上,在服务器确定先后上报同一终端标识的终端为不同终端后,上述方案还包括:
向在后上报终端标识的终端发送标识更新指令,以使得在后上报终端标识的终端重新获取其他终端标识。
当终端C在终端A之后再次上报终端标识m时,服务器判断得出终端C不同于终端A,服务器向终端C发送标识更新指令。在接收到标识更新指令后,终端C按照预设的标识生成算法重新生成一个终端标识。
需要说明的是,本方案中,服务器仅对终端“更换”终端标识进行通知,不对终端采用何种标识生成算法进行控制。终端可以采用预先配置于本地的标识生成算法进行终端标识更新,该标识生成算法可以由服务器统一下发给各个终端,也可以在下发标识更新指令时一同下发给终端,再或者也可以由网管人员手动配置到终端中,本方案不对标识生成算法的具体内容及配置方式进行限定,实际应用中,终端可以采用哈希(Hash)算法随机生成新的终端标识。
由于终端生成的终端标识是随机的,因此新的终端标识可能会与其他终端的终端标识重复。本方案中,服务器可以获取终端更新后的终端标识,并与标识列表中的终端标识进行比对,如果与标识列表中的某个终端标识相同,则服务器再次向终端发送标识更新指令,并对该终端再次更新后的终端标识进行比对,直至终端更新的终端标识无重复为止。此时,服务器将最后确定的终端标识记录在标识列表中,完成终端标识的更新。
更加适用于实际场景的是,服务器可以不对终端更新的终端标识进行比对,终端在标识更新完成后直接将更新后的终端标识作为自身标识使用。在后续的业务请求/响应过程中,终端上报新的终端标识,服务器通过上述各个实施例所示的方案对使用新终端标识的终端进行识别,当发现该终端的新标识与其他终端的终端标识重复时,服务器执行本方案通知终端更新终端标识。
进一步的,为减少标识更新的次数,降低网络及服务器侧的资源开销,在本方案的一种改进方案中,服务器还可以在下发标识更新指令的同时,将本地保存的标识列表一同发送给终端,该标识列表中记录有已分配键值的终端标识。终端在生成新的终端标识后,本地比对标识列表,如有重复则重新生成终端标识,直至生成无重复的终端标识为止。终端将最后确定的终端标识作为自身的标识使用,并发送给服务器进行记录。
以上各实施例对基于键值的终端识别方案进行了介绍,由于键值属于服务器侧分配的参数,与终端无关,因此可以在终端标识被ghost的情况下,起到标识终端的作用。
进一步的,实际应用中如果终端在获得键值后被ghost,那么终端获得的键值也会被ghost到其他终端上,作为其他终端的键值使用。此种情况下键值将无法再被用于终端识别。考虑到此种情况,在本发明提供的又一实施例中,终端在上报终端标识时,还可以将自身其他的物理标识或逻辑标识作为附属标识一并进行上报。服务器在对终端进行识别时,除对键值进行比对之外,还可以对附属标识进行比较。具体的,在上述各图所示方案的基础上,当前后两次上报的键值相同时,服务器可以进一步检测两次接收到的终端标识的附属标识是否相同,若两次接收到的终端标识的附属标识相同,则确定两次上报相同终端标识的终端为同一终端,若两次接收到的终端标识的附属标识不相同,则确定两次上报相同终端标识的终端为不同终端。由于增加了比对的标识种类,因此本方案可以提高终端识别的准确性。
需要说明的是,前述附属标识本质上属于另一种终端标识,可以理解为除前述终端标识之外的其他标识,与前述终端标识之间不存在主次之分。本实施例中提及“附属标识”的概念仅为便于说明,并无实际意义。
进一步的,在本发明各实施例的一种应用场景中,可以采用设备识别码(MachineIdentity,简称MID)作为终端标识使用,采用网间协议(Internet Protocol,简称IP)地址和/或介质访问控制(Media Access Control,简称MAC)地址作为附属标识使用。下面,基于上述具体标识给出本发明实施例的几种实现方式:
方式一
局域网中部署有3台终端,其中终端2由终端1ghost得到,终端1和终端2的MID同为“a”,终端3拥有唯一的MID“b”。
服务器进行初始化设置,清空标识列表。终端3首先进行业务请求,上报MID“b”,服务器接收到MID“b”后查找标识列表获知该MID为首次上报,服务器为MID“b”分配键值“x”,将分配键值的MID“b”写入到标识列表中,并将键值“x”下发给终端3。
当终端1进行业务请求时,上报MID“a”,服务器查找标识列表获知该MID为首次上报,服务器为MID“a”分配键值“y”,将分配键值的MID“a”写入到标识列表中,并将键值“y”下发给终端1。
当终端2进行业务请求时,上报MID“a”,服务器查找标识列表获知该MID不为首次上报,服务器进一步检测得出该MID“a”未绑定有键值,因此确定终端2为“克隆”终端,向终端2下发标识更新指令。
当终端1再次进行业务请求时,上报绑定有键值“y”的MID“a”,服务器查找标识列表获知该MID不为首次上报,服务器进一步检测得出该MID“a”绑定有键值“y”,因此确定终端1为首次上报MID“a”并获得键值“y”的终端。
方式二
局域网中部署有3台终端,其中终端2由终端1ghost得到,终端1和终端2的MID同为“a”,终端3拥有唯一的MID“b”。
服务器进行初始化设置,清空标识列表,然后进行全网升级。服务器向3台终端下发标识上报指令,3台终端同时向服务器上报自身的MID。服务器在接收到2个MID“a”和1个MID“b”后,为MID“b”分配键值“x”,将MID“b”写入标识列表并将键值“x”发送给终端3。对于上报数量大于1的MID“a”,服务器从中随机选取一个MID“a”分配键值“y”,将MID“a”写入标识列表并将键值“y”发送给对应该MID“a”的终端(例如终端1)。对于另一个MID“a”,服务器向其对应的终端(终端2)下发标识更新指令。在终端将MID更新为MID“c”后,服务器为终端2分配键值“z”,并将MID“c”写入标识列表。
方式三
局域网中部署有3台终端,其中终端2由终端1ghost得到,终端1和终端2的MID同为“a”,终端3拥有唯一的MID“b”。
服务器进行初始化设置,清空标识列表,服务器在终端1、终端2和终端3各自第一次上报自身MID时,为对应的MID分配键值,并将分配键值的MID写入标识列表,写入标识后的标识列表如图5所示。其中,2个MID“a”分别对应键值“x”和键值“y”,MID“b”对应键值“z”。
此后,终端1最先发起业务请求。上报了绑定有键值“x”的MID“a”,服务器在标识列表中查找到了对应该键值的MID,响应终端1的业务请求。终端21继续发起业务请求。上报了绑定有键值“y”的MID“a”,服务器在标识列表中查找到前次上报的MID“a”的键值为“x”,与本次上报的MID“a”的键值“y”不符,服务器向终端2发送标识更新指令,指示终端2更新的MID。
此后,终端1再次发起业务请求,上报了绑定有键值“x”的MID“a”,服务器在标识列表中查找到首次上报的MID“a”的键值为“x”,与本次上报的MID“a”的键值“x”相同,先后两次上报MID的终端为同一终端,服务器响应终端1的业务请求。
方式四
局域网中部署有2台终端,终端1和终端2的MID分别为“a”和“b”。其中终端1在获得服务器分配的键值“x”后,局域网中加入了终端3,且终端3由终端1ghost得到,拥有与终端1相同的键值“x”。
在发起业务请求时,各个终端除上报绑定有键值的MID之外,还会将自身的IP及MAC作为附属标识一同进行上报。在终端1至终端3分别发起业务请求后,服务器接收到的终端标识如图6所示。在图6中,虽然终端1和终端3的MID及键值均对应相同,但是两者的IP地址及MAC地址并不相同。服务器由此可以判断出图6中第3条表项对应的终端(实际上为终端3)与第1条表项对应的终端(实际上为终端1)并不相同,服务器向第3条表项对应的终端(终端3)方式标识更新指令,指示该终端更新MID。
进一步的,作为对上述各实施例的实现,本发明实施例还提供了一种终端识别的装置,用以实现上述各个实施例。本实施例中所述的装置通常位于局域网的服务器内,或者独立于服务器但与服务器之间具有数据交互关系。如图7所示,该装置包括:接收单元71、分配单元72、发送单元73以及确定单元74,其中,
接收单元71,用于接收终端标识;
分配单元72,用于为接收单元71接收的终端标识分配键值;
发送单元73,用于将分配单元72分配的键值下发给上报终端标识的终端,以便终端将键值与终端标识进行绑定;
确定单元74,用于当接收单元71再次接收到相同的终端标识时,根据分配单元72为终端标识分配的键值确定两次接收到的终端标识是否为同一终端所上报。
进一步的,如图8所示,分配单元72,包括:
第一分配模块721,用于在首次接收到某个终端标识时,为终端标识分配键值。
进一步的,如图8所示,确定单元74,包括:
第一确定模块741,用于当再次接收到相同的终端标识时,检测再次接收到的终端标识是否绑定有键值,得出第一检测结果,若第一检测结果为是,则确定两次接收到的终端标识为同一终端所上报,若第一检测结果为否,则确定两次接收到的终端标识为不同终端所上报。
进一步的,如图8所示,分配单元72,包括:
第二分配模块722,用于在接收到任意终端标识时,若终端标识未绑定有键值,则为终端标识分配键值,键值不重复分配。
进一步的,如图8所示,确定单元74,包括:
第二确定模块742,用于当再次接收到相同的终端标识时,检测再次接收到的终端标识的键值与前次接收到的相同终端标识的键值是否相等,得出第二检测结果,若第二检测结果为是,则确定两次接收到的终端标识为同一终端所上报,若第二检测结果为否,则确定两次接收到的终端标识为不同终端所上报。
进一步的,发送单元73,用于当确定单元74确定两次接收到的终端标识为不同终端所上报时,向在后上报终端标识的终端发送标识更新指令,以使得在后上报终端标识的终端重新获取其他终端标识。
进一步的,发送单元73发送的标识更新指令中携带有标识列表,标识列表中记录有已分配键值的终端标识。
进一步的,接收单元71接收的终端标识绑定有附属标识;
如图8所示,确定单元74,包括:
第三确定模块743,用于检测两次接收到的终端标识的附属标识是否相同,若两次接收到的终端标识的附属标识相同,则确定两次上报相同终端标识的终端为同一终端,若两次接收到的终端标识的附属标识不相同,则确定两次上报相同终端标识的终端为不同终端。
本实施例提供的终端识别的装置,能够在终端上报终端标识时,为终端标识分配一个服务器侧生成的键值,当终端再次上报终端标识时,服务器可以通过绑定终端标识的键值确定发送相同终端标识的终端是否为同一个终端。与现有技术相比,本装置识别终端的依据在于终端标识与键值的组合,而非局限于终端标识本身,因此可以在多终端共用同一终端标识的情况下对不同终端进行识别。
进一步的,作为对上述各实施例的实现,本发明实施例还提供了一种终端识别的系统,用以实现上述各个实施例。如图9所示,该系统包括服务器91和终端92,其中服务器91包括如图7或图8所示的装置,终端92包括但不仅限于是电脑、手机、便携式电子设备、可穿戴式电子设备。
终端92,用于向服务器91上报自身的终端标识;
服务器91,用于在接收到终端标识时,为终端标识分配键值,将键值下发给上报终端标识的终端92;
终端92,还用于将服务器91下发的键值与终端标识进行绑定;
服务器91,还用于当再次接收到相同的终端标识时,根据终端标识的键值确定两次接收到的终端标识是否为同一终端所上报。
本实施例提供的终端识别的系统,能够在终端上报终端标识时,为终端标识分配一个服务器侧生成的键值,当终端再次上报终端标识时,服务器可以通过绑定终端标识的键值确定发送相同终端标识的终端是否为同一个终端。与现有技术相比,本系统识别终端的依据在于终端标识与键值的组合,而非局限于终端标识本身,因此可以在多终端共用同一终端标识的情况下对不同终端进行识别。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。