识别WiFi群的方法及系统与流程

文档序号:12162980阅读:500来源:国知局
识别WiFi群的方法及系统与流程
本发明涉及无线网络
技术领域
,特别是涉及一种识别WiFi群的方法及系统。
背景技术
:WiFi是一种可以将个人电脑、手持设备(如智能手机、平板电脑等)等终端以无线方式互相连接的技术。随着无线网络技术的发展,WiFi已经变得越来越普遍。在一些应用场景下,可以将一些具备相同特征的WiFi识别为一个WiFi群体(简称为WiFi群)。识别WiFi群将有利于分析出人口密集的区域。传统技术中,一般是基于SSID(ServiceSetIdentifier,服务集标识)划分WiFi群的,也就是将具有相同SSID的WiFi识别为一个群。SSID可以将一个无线局域网分为几个需要不同身份验证的子网络,每一个子网络都需要独立的身份验证,只有通过身份验证的用户才可以进入相应的子网络,防止未被授权的用户进入本网络。可将SSID通俗的理解为给无线网络所取的名字。但是,由于个人WiFi的SSID也可以随意命名,比如,CMCC是中国移动的WiFi,而个人WiFi的SSID也可以命名为CMCC。这样,传统技术中,往往会把非同一群体的WiFi误判为一个群体。因此,识别WiFi群的准确度不高。技术实现要素:基于此,有必要提供一种能更准确的识别WiFi群的方法及系统。一种识别WiFi群的方法,所述方法包括:获取WiFi标识和对应的服务集标识和经纬度数据,所述WiFi标识用于唯一标识一个WiFi,根据所述服务集标识和经纬度数据生成所述WiFi标识对应的WiFi哈希值,根据WiFi标识对应的WiFi哈希值对WiFi进行聚类,识别出WiFi群。一种识别WiFi群的系统,所述系统包括:获取模块,用于获取WiFi标识和对应的服务集标识和经纬度数据,所述WiFi标识用于唯一标识一个WiFi;生 成模块,用于根据所述服务集标识和经纬度数据生成所述WiFi标识对应的WiFi哈希值;识别模块,用于根据WiFi标识对应的WiFi哈希值对WiFi进行聚类,识别出WiFi群。上述识别WiFi的方法及系统,通过获取WiFi标识和对应的服务集标识和经纬度数据,所述WiFi标识用于唯一标识一个WiFi;根据所述服务集标识和经纬度数据生成所述WiFi标识对应的WiFi哈希值;根据WiFi标识对应的WiFi哈希值对WiFi进行聚类,从而识别出WiFi群。由于在识别WiFi群的过程中使用到了WiFi的经纬度数据,基于WiFi的服务集标识和WiFi的经纬度数据进行WiFi群的划分,能够有效的识别噪点WiFi,更准确的识别WiFi所在的群。【附图说明】图1为一个实施例中识别WiFi群方法的应用环境图;图2为一个实施例中服务器的内部结构图;图3为一个实施例中识别WiFi群的方法流程图;图4为一个实施例中WiFi聚类结果的示意图;图5为一个实施例中生成WiFi哈希值的方法流程图;图6为一个实施例中预估选择键长的流程图;图7为一个实施例中不同键长值对应的WiFi数量的坐标示意图;图8为一个实施例中边界点WiFi生成WiFi哈希值的方法流程图;图9为一个实施例中边界点WiFi覆盖范围的示意图;图10为一个实施例中对边界点WiFi聚类的流程图;图11为另一个实施例中识别WiFi群的方法流程图;图12为一个实施例中电子地图WiFi群分布的示意图;图13为一个实施例中识别WiFi群的系统的结构框图;图14为一个实施例中生成模块的结构框图;图15为另一个实施例中识别WiFi群的系统的结构框图;图16为再一个实施例中识别WiFi群的系统的结构框图。【具体实施方式】为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,在一个实施例中,识别WiFi群的方法可应用于如图1所示的应用环境中,在该应用环境中,大量终端102与服务器104通过网络进行通信。其中终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务器104可以是独立的服务器,也可以是多个服务器组成的服务器集群。终端102可连接WiFi网络,并能运行各种网络应用,在终端102运行网络应用的过程中,会向服务器104提交各种网络数据,从而服务器104可统计到终端102所在WiFi对应的各种数据,比如WiFi对应的SSID、BSSID、所在的经纬度数据等。进一步的,服务器104在收集到大量WiFi对应的数据后,可对这些数据进行分析,识别出WiFi群,即将某一些WiFi归为一个群中。识别WiFi群有利于一些场景下的数据分析和应用,比如分析出人口密集区域,以及缓解压力大的WiFi设备的设备压力等。图2为一个实施例中服务器104的内部结构图,该服务器104包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质包括操作系统、数据库、识别WiFi群的系统,数据库用于存储数据,如存储全国各地WiFi的经纬度数据等。该识别WiFi群的系统用于识别WiFi所在的群,该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的识别WiFi群的系统的运行提供环境。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的网络应用数据,WiFi数据以及向终端返回WiFi群识别结果等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如图3所示,在一个实施例中,提供了一种识别WiFi群的方法,该方法以应用于服务器进行举例说明,该方法包括:步骤302,获取WiFi标识和对应的服务集标识和经纬度数据,所述WiFi标识用于唯一标识一个WiFi。WiFi标识用于唯一标识一个WiFi。具体的,WiFi标识可以是WiFi的BSSID,或者是WiFi的BSSID和SSID的组合。BSSID(BasicServiceSetIdentifier,基本服务集标识),实际上就是AP(AccessPoint,无线访问接入点)的MAC地址。AP是组建小型局域网时最常用的设备,相当于连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接在一起,然后将无线网络接入以太网。而SSID通俗的理解为给无线网络所取的名字。经纬度是经度与纬度组成的一个坐标系统,又称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。WiFi的经纬度是指WiFi的无线接入点AP所在的经纬度。步骤304,根据服务集标识和经纬度数据生成WiFi标识对应的WiFi哈希值。本实施例中,WiFi标识和对应的SSID和经纬度数据存储在服务器中,如表1所示。在识别WiFi群时,提取每一条WiFi标识对应的SSID和经纬度数据,生成对应的WiFi哈希值,并对应WiFi标识进行存储。其中,WiFi哈希值可以是WiFi的SSID与经纬度数据进行编码后组成的字符串。优选的,对经纬度数据的编码方式可以是GeoHash编码方式。表1中每一行代表的是一条WiFi的数据,每一个WiFi对应生成一个WiFi哈希值,并将生成的WiFi哈希值对应WiFi标识存储到服务器中。表1SSIDBSSID经度纬度Tencent-StaffWiFi00:08:2f:c2:a2:32113.94462422.547818Tencent-StaffWiFi00:08:2f:fa:70:eb113.95355222.540085Tencent-StaffWiFi00:08:2f:fa:73:82113.94455522.547097步骤306,根据WiFi标识对应的WiFi哈希值对WiFi进行聚类,识别出 WiFi群。在本实施例中,采用聚类算法将具有相同WiFi哈希值的WiFi归为一个群。优选的,可以采用DBScan(Density-BasedSpatialClusteringofApplicationswithNoise,基于空间密度的群用以发现噪声)算法。DBScan算法是一种基于密度的聚类算法,它有一个核心点的概念,即如果一个点,在距它Eps的范围内有不少于MinPts个点,则该点就是核心点。核心点和它Eps范围内的邻居形成一个簇。在一个簇内如果出现多个点都是核心点,则以这些核心点为中心的簇要合并,得到的每个簇即为识别出的WiFi群。图4给出了在一个空间里对多个WiFi进行聚类的结果示意图,其中每一个椭圆即为一个簇,每个簇中包含多个WiFi,簇中的WiFi归为一个群。在本实施例中,通过获取WiFi标识和对应的服务集标识和经纬度数据,所述WiFi标识用于唯一标识一个WiFi;根据所述服务集标识和经纬度数据生成所述WiFi标识对应的WiFi哈希值;根据WiFi标识对应的WiFi哈希值对WiFi进行聚类,从而识别出WiFi群。由于在识别WiFi群的过程中使用到了WiFi的经纬度数据,基于WiFi的服务集标识和WiFi的经纬度数据进行WiFi群的划分,能够有效的识别噪点WiFi,更准确的识别WiFi所在的群。在一个实施例中,如图5所示,根据服务集标识和经纬度数据生成WiFi标识对应的WiFi哈希值的步骤包括:步骤304a,采用GeoHash编码方式对上述经纬度数据进行编码,得到经纬度数据对应的GeoHash值。在本实施例中,GeoHash是一种地址编码,它能把二维的经纬度编码成一维的字符串。用GeoHash编码得到的一维字符串称为GeoHash值。GeoHash值在地图上表示的不是一个点,而是一个矩形区域。字符串越长,表示的范围越精确,即对应的矩形区域越小。步骤304b,提取GeoHash值中的预设长度的字符串。在本实施例中,用GeoHash对经纬度进行编码后得到的GeoHash值是一维的字符串,字符串越短,表示的范围越大。提取字符串的前几位可以对应一个 更大的范围。具体的,假设对一个经纬度数据编码后得到的GeoHash值为wx4g0ec1,取该字符串的前五位即wx4g0,它表示包含编码wx4g0ec1在内的更大范围。在实际应用中,根据需要从GeoHash值中提取最优长度的字符串。步骤304c,根据服务集标识和提取的预设长度的字符串生成WiFi标识对应的WiFi哈希值。在本实施例中,WiFi的服务集标识和从GeoHash值中提取的字符串共同组成了WiFi标识对应的WiFi哈希值。优选的,通过将WiFi的服务集标识和从GeoHash值中提取的字符串拼接起来组成WiFi标识对应的WiFi哈希值。具体的,比如CMCC是中国移动WiFi的服务集标识,假设提取的中国移动WiFi对应的GeoHash字符串为wx4g0,那么中国移动的WiFi标识对应的WiFi哈希值为CMCCwx4g0。在一个实施例中,可通过对服务器中存储的WiFi数据进行预处理后确定上述的预设长度。在一个实施例中,如图6所示,在根据所述服务集标识和经纬度数据生成所述WiFi标识对应的WiFi哈希值的步骤之前,还包括对存储的WiFi数据进行预处理的过程,具体包括以下步骤:步骤602,采用GeoHash编码方式对经纬度数据进行编码,得到经纬度数据对应的GeoHash值。GeoHash是一种地址编码,它能把二维的经纬度编码成一维的字符串。用GeoHash编码得到的一维字符串称为GeoHash值。GeoHash值在地图上表示的不是一个点,而是一个矩形区域。字符串越长,表示的范围越精确,即对应的矩形区域越小。在本实施例中,获取服务器中存储的WiFi数据中的与WiFi标识对应的经纬度数据,对经纬度数据进行GeoHash编码,得到经纬度数据对应的GeoHash值。步骤604,根据预设至少两个键长值,从所述GeoHash值中提取对应键长值的字符串。在本实施例中,键长值是指字符串的长度,一个键长值代表有一个字符, 两个键长值代表有两个字符,依次类推。GeoHash值是一维的字符串,字符串越长,表示的范围越小。假设预设的键长值为2,3,4,5,意味着分别从GeoHash值中提取前2,3,4,5长度的字符串。具体的,比如GeoHash值对应的字符串为wx4g0ec1,提取前2,3,4,5长度的字符串分别为wx,wx4,wx4g,wx4g0。步骤606,根据所述服务集标识和提取的字符串生成WiFi标识对应的WiFi哈希值,其中,一个WiFi标识对应每个键长值生成一个WiFi哈希值。在本实施例中,不同的键长值对应不同长度的字符串,结合WiFi的服务集标识,对应不同的键长值生成与WiFi标识对应不同的WiFi哈希值。比如,对一个WiFi的经纬度数据进行编码后得到GeoHash值为wx4g0ec1,分别提取其前4,5,6长度的字符串(即相应键长值分别为4,5,6),与SSID组成WiFi哈希值,因此可以得到与WiFi标识对应的三个不同WiFi哈希值。步骤608,针对每一键长值,预估WiFi哈希值对应的WiFi数量。在本实施例中,不同的键长值对应不同长度的字符串,字符串越长,在地图上表示的范围越小,对应的WiFi数量也就越少,相同的WiFi哈希值对应的WiFi数量越少,越容易进行聚类。步骤610,选取最优WiFi数量下对应的键长值为预设长度。在实际应用中,一般要求每个WiFi哈希值对应的WiFi数量不超过一定数量,比如一万。如果每一个相同WiFi哈希值对应的WiFi数量过高,则根据对应的键长值后续在识别WiFi群时处理性能会降低。通过选取最优WiFi数量下对应的键长值作为预设长度。如图7所示,键长值越长,相同WiFi哈希值对应的WiFi数量越少,图中示出了对应WiFi数量最多的前10位哈希值分别在键长值为4,5,6对应的WiFi数量。本实施例中,通过对存储的WiFi数据进行预处理,选定出最适合的键长值,该键长值确定了在识别WiFi群的过程中需要提取GeoHash值中的字符串的长度。由于对不同键长值下的相同WiFi哈希值对应的WiFi数量进行了预估,因此可以选出最优的键长值,使得在后续识别WiFi群的过程中,能够得到更好的数据处理性能,避免了由于一个相同的WiFi哈希值对应的WiFi数量太大而导致处理性能降低的情形。由于GeoHash值对应一个矩形区域,在这个矩形区域内的WiFi对应相同的GeoHash值,然而处于该矩形区域边界点的WiFi的覆盖范围往往会超出其所在的矩形区域,按照上述方法聚类后,可能在各个簇之间出现有交集的WiFi,因此,需要对边界点的WiFi做进一步处理。如图8所示,在一个实施例中,对边界点的WiFi进行处理的过程具体包括:步骤802,获取位于GeoHash值对应的矩形区域的边界位置的WiFi。在本实施例中,一个GeoHash值在地图上对应一个矩形区域,一个矩形区域里往往有多个WiFi,每个WiFi的信号都有一个覆盖范围,处在矩形区域的边界位置的WiFi,其WiFi信号的范围往往会超出其所在的矩形区域。具体的,如图9所示,假设背景的矩形区域对应相同的GeoHash值,WiFiB的覆盖范围全部在矩形区域内,所以WiFiB只可能和该矩形区域内的WiFi属于一个群体,而处于边界的WiFiA和WiFiC的覆盖范围会超出其所在的矩形区域,此时WiFiA和WiFiC也可能和该矩形区域相邻的区域内的WiFi属于同一群体。步骤804,获取所述位于GeoHash值对应的矩形区域的边界位置的WiFi所覆盖的多个矩形区域。在本实施例中,WiFi的覆盖范围对应一个圆形,找出与WiFi的覆盖范围有重叠的矩形区域,为了方便计算,可以采用查找与圆形的外切正方形有重叠的矩形区域。具体的,如图9所示,与WiFiC的外切正方形重叠的有2个矩形区域,与WiFiA的外切正方形重叠的有4个矩形区域。步骤806,根据WiFi的服务集标识和该多个矩形区域对应的GeoHash值,生成与所述WiFi的WiFi标识对应的多个WiFi哈希值。具体的,每个矩形区域对应一个GeoHash值,处于边界位置的WiFi覆盖多个矩形区域,即该WiFi会对应多个GeoHash值,根据该WiFi的服务集标识分别和这多个GeoHash值,则可以生成与该WiFi的WiFi标识对应的多个WiFi哈希值。如图9所示,WiFiA覆盖4个矩形区域,WiFiB覆盖2个矩形区域,即WiFiA对应4个WiFi哈希值,WiFiB对应2个WiFi哈希值。如图10所示,在一个实施例中,在根据WiFi标识对应的WiFi哈希值对 WiFi进行聚类,识别出WiFi群的步骤之后,还包括:步骤1002,判断聚类得到的多个簇之间是否有对应同一个WiFi标识的WiFi哈希值,若是,则进行步骤1004,若否则结束。在本实施例中,处于边界位置的WiFi,由于对应多个WiFi哈希值,根据WiFi哈希值进行初步聚类的过程中同一个WiFi被聚类在不同的群中,所以需要对初步聚类的结果进行再判断,采用迭代算法判断得到的多个簇之间是否有对应同一个WiFi标识的WiFi哈希值,直到各个簇之间没有对应的同一个WiFi标识的WiFi哈希值结束计算。步骤1004,将具有对应同一个WiFi标识的WiFi哈希值的簇中的WiFi归为一个WiFi群。在本实施例中,若检测到多个簇之间有对应同一个WiFi标识的WiFi哈希值,则将多个簇中的WiFi归为一个WiFi群,即将有对应同一个WiFi标识的WiFi哈希值的多个簇合为一个簇。本实施例中,由于具有交集WiFi的簇之间的关联性比较强,将具有交集WiFi的簇进行合并,能够进一步提高识别WiFi的准确性。在一个实施例中,如图11所示,整个识别WiFi群的过程可分为三个阶段:步骤1102,数据预处理。本步骤对服务器中存储的WiFi数据进行预处理,以预估出最优的键长值,并根据该最优的键长值来生成每个WiFi标识对应的WiFi哈希值。步骤1104,聚类运算。本步骤可采用DBScan算法利用Map-Reduce分布式计算框架进行聚类运算。在聚类运算阶段,分为两个过程,分别是Map和Reduce,其中,Map阶段获取WiFi标识对应的WiFi哈希值,也就是每个WiFi的WiFi哈希值。Reduce阶段则通过聚类算法将具有相同WiFi哈希值的WiFi归为一个群。步骤1106,迭代合并。本步骤处理边界点WiFi的问题。如图5所示。由于边界点WiFi对应多个WiFi哈希值,在Reduce的过程中,同一个WiFi被分在了不同的群中,因此针对边界点的问题,需要进一步判断。迭代合并阶段通过 判断各个群之间是否有交集WiFi,即判断聚类得到的多个簇之间是否有对应同一个WiFi标识的WiFi哈希值,若有,则将具有对应同一个WiFi标识的WiFi哈希值的簇中的WiFi归为一个WiFi群,输出最终的聚类群。可以理解,数据预处理过程中可根据服务器中存储的WiFi数据来确定最优键长值,对于服务器中存储的大量WiFi数据,可执行一次数据预处理。之后在各种应用场景中识别WiFi群可直接根据确定的最优的键长值来对WiFi进行编码。在一些应用场景下,服务器可将识别得到的WiFi群中的WiFi标识通过网络发送到终端。如图12所示,服务器将识别得到的WiFi群返回到终端,终端可以结合电子地图,直接在电子地图上显示识别得到的WiFi群,每个WiFi群可在电子地图上直接以图标标识出,同时显示出一个WiFi群中包含的WiFi数量。将WiFi群结合电子地图显示在终端上,由于识别WiFi群结合了WiFi所在的经纬度数据,识别出WiFi群更为准确,结合电子地图中的经纬度数据,也能更加准确的在电子地图上标识出WiFi群的位置。如图13所示,在一个实施例中,提出了一种识别WiFi群的系统,该系统包括:获取模块1302,用于获取WiFi标识和对应的服务集标识和经纬度数据,WiFi标识用于唯一标识一个WiFi。生成模块1304,用于根据所述服务集标识和经纬度数据生成所述WiFi标识对应的WiFi哈希值。识别模块1306,用于根据WiFi标识对应的WiFi哈希值对WiFi进行聚类,识别出WiFi群。如图14所示,在一个实施例中,生成模块1304包括:第一编码模块1304a,用于采用GeoHash编码方式对经纬度数据进行编码,得到经纬度数据对应的GeoHash值。第一提取模块1304b,用于提取所述GeoHash值中的预设长度的字符串。第一哈希值生成模块1304c,用于根据服务集标识和提取的预设长度的字符 串生成所述WiFi标识对应的WiFi哈希值。如图15所示,在一个实施例中,上述识别WiFi群的系统还包括:WiFi获取模块1308,用于获取位于GeoHash值对应的矩形区域的边界位置的WiFi。区域获取模块1310,用于获取所述位于GeoHash值对应的矩形区域的边界位置的WiFi所覆盖的多个矩形区域。哈希值生成模块1312,用于根据所述WiFi的服务集标识和所述多个矩形区域对应的GeoHash值,生成与所述WiFi的WiFi标识对应的多个WiFi哈希值。在一个实施例中,上述识别WiFi群的系统还包括:归类模块(图中未示出),用于判断聚类得到的多个簇之间是否有对应同一个WiFi标识的WiFi哈希值,若聚类得到的多个簇之间对应同一个WiFi标识的WiFi哈希值,则将具有对应同一个WiFi标识的WiFi哈希值的簇中的WiFi归为一个WiFi群。如图16所示,在一个实施例中,上述识别WiFi群的系统还包括:第二编码模块1602,用于采用GeoHash编码方式对经纬度数据进行编码,得到经纬度数据对应GeoHash值。第二提取模块1604,用于根据预设至少两个键长值,从GeoHash值中提取对应所述键长值的字符串。第二哈希值生成模块1606,用于根据服务集标识和提取的字符串生成WiFi标识对应的WiFi哈希值,其中,一个WiFi标识对应每个键长值生成一个WiFi哈希值。预估模块1608,用于针对每一键长值,预估相同WiFi哈希值对应的WiFi数量。选取模块1610,用于选取最优WiFi数量下对应的键长值为所述预设长度。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory, ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1