WhatsApp网页版登录WhatsApp网页版登录

WhatsApp中文版

通过ip可以查到地址吗

现有IP定位方法及其比较如表1所示。归纳如下:

1)基于延时测量的方法响应时间长、部署成本高,最高定位精度能达到7到10公里;

2)基于数据库的方法响应快、部署成本低,但是定位精度低;

3)对在线广告等应用所要求的街道级(比如2公里以内)定位精度,上述两类方法 均不能满足要求。

表1现有IP定位方法及其比较

发明内容

本发明的目的是为克服已有IP定位技术的不足,提出一种利用移动终端位置数据准确 定位用户计算机IP地址所对应地理位置的方法。该方法不仅能够实现街道级的定位精度, 同时也具备响应快和部署简单等优点。

本发明提出的利用用户使用移动终端的位置数据来定位IP位置的方法,包括以下步骤:

步骤(1):收集一段时间内用户使用移动终端的位置数据,组成地理位置数据集,每一 条地理位置数据记录包括用户标识、时间和地理位置;

步骤(2):预处理收集到的用户使用移动终端的地理位置数据集;

本步骤(2)具体包括以下步骤:

步骤(2.1):从地理位置数据集中取一个尚未处理的用户;

步骤(2.2):从地理位置数据集中筛选出该用户的所有记录;

步骤(2.3):如果该用户总的地理位置数据记录条数低于设定的一个阈值或高于某设定的另一个阈值,则从地理位置数据集中去除该用户的所有条地理位置数据记录;

步骤(2.4):如果地理位置数据集中还有尚未处理的用户,则转回步骤(2.1),否则结 束,转步骤(3);

步骤(3):对于地理位置数据集中的每个用户:筛选出该用户在每天第一时间段内的 移动终端地理位置数据全部记录,对这些记录的地理位置进行聚类,将聚类得到的若干 聚合的重心作为该用户对应的第一候选位置;筛选出该用户在每个工作日第二时间段内 的移动终端地理位置数据全部记录,对这些记录的地理位置进行聚类,将聚类得到的若 干聚合的重心作为该用户对应的第二候选位置;

本步骤(3)包括以下步骤:

步骤(3.1):从地理位置数据集中取一个尚未处理的用户;

步骤(3.2):从地理位置数据集中筛选出该用户在每天第一时间段内的地理位置数据 记录,计算任每两条记录的地理位置的距离;基于距离的远近对这些地理位置进行聚 类,得到一系列聚合,将这一系列聚合中一个或多个聚合的重心作为该用户对应的第一 候选位置;

上述的步骤(3.2)中whatsapp网页版whatsapp官网,计算任每两条记录的地理位置的距离,具体计算如下:

如果这两条记录的地理位置不是经纬度,则将它们转换为经纬度和,将经纬度和分别转换为对应的弧度和;

和之间的距离为S=arccos(sin(α1)*sin(α2)+cos(α1)*cos(α2)*cos (β1-β2))*R;其中,arccos,sin,cos分别为反余弦,正弦,余弦符号,R为地球赤道半径;

上述的步骤(3.2)中,基于距离的远近对这些地理位置进行聚类,具体步骤如下:

步骤(3.21):将每一个地理位置转化为只包含一个经纬度的聚合{};

步骤(3.22):计算每两个聚合之间的距离,两个聚合之间的距离定义为从两个聚合各 任意取一个经纬度的最大距离;

步骤(3.23):找出距离最近的两个聚合,如果该距离小于指定阈值,则将这两个聚合合 并成一个新的聚合,新聚合中包括原来两个聚合的所有的经纬度,转到步骤(3.22);如果该 距离大于或者等于指定阈值,则聚类结束;转步骤(3.2)。

上述的步骤(3.2)中,聚合的重心通过如下方法计算:假设一个聚合为{,,…,},则该聚合的重心为;

步骤(3.3):从地理位置数据集中筛选出该用户在每个工作日第二时间段内的地理位 置数据记录,计算任每两条记录的地理位置的距离;基于距离的远近对这些地理位置进 行聚类,得到一系列聚合,将这一系列聚合中的一个或多个聚合的重心作为该用户对应 的第二候选位置,具体方法与步骤(3.2)中完全相同;

步骤(3.4):如果地理位置数据集中还有尚未处理的用户,转回步骤(3.1),否则结束;转步骤(4);

步骤(4):收集一段时间内用户使用固定终端(如PC算机)上网的IP地址数据,组 成IP地址数据集,每一条IP地址数据记录包括用户标识、时间和IP地址;

步骤(5):预处理收集到的IP地址数据集:将每一条记录的IP地址转化为一个IP段; 如果一个用户使用某个IP段的记录数目低于预先设定的阈值,则从IP地址数据集中去除 该用户使用这一IP段的IP地址数据记录。

上述步骤(5)中,将一个IP地址转化为一个IP段的步骤如下:

步骤(5.1):选定一个数值M作为IP地址转换后对应IP段所需要保留的IP地址长度, M的取值范围为大于8小于32的整数;

步骤(5.2):将该IP地址的前面M位保留不变,后面的32-M位设置为零,得到的结 果作为该IP地址所对应的IP段;

步骤(6):对于预处理后的IP地址数据集中每一个IP段,筛选出使用过该IP段的所 有用户whatsapp登录,根据步骤(3)获得的结果,找出所有这些用户对应的第一候选位置和第二候选位 置,作为该IP段所对应的候选地理位置;对这些候选地理位置进行聚类,得到一系列聚合, 从这一系列聚合中选出包含候选地理位置最多的聚合,将该聚合的重心作为该IP段(即该 IP段所涵盖的IP地址)所对应的地理位置。

步骤(6)具体包括以下步骤:

步骤(6.1):从预处理后的IP地址数据集中取一个尚未处理的IP段;

步骤(6.2):从IP地址数据集中找出使用过该IP段的所有用户,根据步骤(3)的结果找 出所有这些用户对应的第一候选位置和第二候选位置,作为该IP段所对应的候选地理位 置,计算每两个候选地理位置之间的距离,基于距离的远近进行聚类,聚类结束后将得到 一系列聚合。上述的步骤(6.2)中,基于所有计算的距离进行聚类的步骤如下:

步骤(6.21)将每一个候选地理位置对应的经纬度转化为只包含一个经纬度的 聚合{};

步骤(6.22)计算每两个聚合之间的距离;其中,两个聚合之间的距离定义为从两个聚 合各任意取一个经纬度的最小距离;

步骤(6.23)找出距离最近的两个聚合,如果该距离小于指定阈值,则将这两个聚合合 并成一个新的聚合,新聚合中包括原来两个聚合的所有的经纬度,转到步骤(6.22);如果该 距离大于或者等于指定阈值,则聚类结束;转步骤(6.3);

步骤(6.3):通过以下步骤选择一个聚合的重心作为该IP段对应的地理位置:

步骤(6.31)将所有聚合依据包含的候选位置的个数从多到少进行排序,分别记为C1, C2,…Ci…,Cn;n为聚合的个数;

步骤(6.32)如果C1包含的候选位置个数比C2多,将选择C1进行下一步处理,转步骤(6.34),否则转步骤(6.33);

步骤(6.33)如果C1包含的候选位置个数与Ci一样多,则从C1,...,Ci中选出包含用户数 最多的聚合,转到步骤(6.34);如果多个聚合包含的用户数并列第一时,则随机选择一个聚 合,转到步骤(6.34);

步骤(6.34)计算所选择的聚合的重心作为该IP段对应的地理位置。

本发明中提到的一段时间,可以为任意长的一段时间,例如一个月或一年。本发明提 到的阈值或个数选择,可以设定为任何值,这些值的设定只会影响结果精度,不会对方法 本身造成影响。

本发明方法主要基于以下原理:大部分人每天的活动都具备很强的规律性,通常第一 时间段内(晚上)在家,工作日第二时间段内(白天)则在办公地点;如果能够收集用户 使用的移动终端(比如手机)的位置数据(通常通过GPS获知),则用户晚上的位置数据 记录将会集中在家附近,而工作日白天的位置数据记录则会集中在办公地点附近;于是可 以据此推测某用户可能的家庭位置和办公位置。同时,可以收集到用户使用的固定终端的 IP使用记录。如果收集到的IP使用记录数据显示某个IP/24段被多个用户的固定终端使用, 则这个IP/24段很可能在这几个用户的家庭和办公地点集中的位置。

本发明的特点及有益效果:

本发明利用用户使用的移动终端(比如带有GPS定位功能的手机)时所产生的位置 数据信息来间接推测该用户使用的固定终端(如家用PC机,办公室PC机),服务器等及其 使用的IP地址所对应的位置;

本发明由于间接使用了移动终端上提供的高精度的位置信息,能够实现街道级的IP 定位精度,同时具备部署简单和响应速度快等优点。

附图说明

图1是本实施例的总体流程图。

图2是本实施例中预处理移动位置数据集(步骤2)的流程图。

图3是本实施例聚类移动位置数据记录得到候选家庭位置和候选办公位置(步骤3) 的流程图。

具体实施方式

本发明提出的一种利用移动终端位置数据来精确定位IP位置的方法,结合附图及实施 例详细说明如下。

本方法以用户使用IM工具或者社交应用,例如腾讯公司的手机版QQ、手机微博等应 用为例说明用户使用终端的地理位置数据的收集途径;以用户使用腾讯公司的桌面版QQ为例说明用户使用固定终端的IP地址数据收集途径。当用户使用腾讯的手机QQ、手机微 博等应用时,可以使用“足迹”、“说说”等功能提交自己的地理位置信息,这些位置信 息包括用户的登录ID(即本发明方法所指的用户标识),提交的时间,以及地理位置信息 (通过GPS采集的经纬度数据)。当用户每次登陆桌面版腾讯QQ软件时,服务器都会记 录其相应的登录信息,这些登录信息包括用户的登录ID(用户标识),登录时间,以及登 录的IP地址。利用上述用户自己提交的地理位置信息和桌面版QQ登录信息,可以收集到 本发明实施例中所需要的地理位置数据集和IP地址数据集。

本方法的实施例包括以下步骤:

步骤(1):收集一段时间(时间可长可短,如1个月)内用户使用移动终端的位置数据, 组成地理位置数据集,每一条地理位置数据记录包括用户标识、时间和地理位置。在本实 施例中,地理位置为经纬度(),采集到的地理位置数据集存储到MySQL数据库。 数据记录的格式如表2所示。

表2移动终端的地理位置数据的存储格式

字段 描述 类型 长度 举例 UID 用户标识 字符串 20字节 liming1982 Time 时间 字符串 19字节 2012-12-12 11:12:12 Latitude 纬度 浮点数 8字节 46.339202 Longitude 经度 浮点数 8字节 121.393833

步骤(2):预处理收集到的用户使用移动终端的地理位置数据集,本步骤具体包括步骤 如图2所示:

步骤(2.1):从地理位置数据集中取一个尚未处理的用户(用户标识);

步骤(2.2):从地理位置数据集中筛选出该用户的所有记录;

步骤(2.3):如果该用户总的地理位置数据记录条数低于设定的一个阈值(可根据实际 情况需要取值,本实施例设置为10条)或者高于设定的另一个阈值(本实施例设置为1000 条),则从地理位置数据集中去除该用户对应的所有条地理位置数据记录;

步骤(2.4):如果地理位置数据集中还有尚未处理的用户,则转回步骤(2.1),否则结 束;转步骤(3);

步骤(3):对于地理位置数据集中的每个用户:筛选出该用户在每天第一时间段内(晚 上)的移动终端地理位置数据全部记录,对这些记录的地理位置进行聚类,将聚类得到的 若干聚合的重心作为该用户对应的第一候选位置;筛选出该用户在每个工作日第二时间 段内(白天)的移动终端地理位置数据全部记录,对这些记录的地理位置进行聚类,将聚 类得到的若干聚合的重心作为该用户对应的第二候选位置;将该用户的第一候选位置和第 二候选位置存储到MySQL数据库中,用户的第一候选位置和第二候选位置数据的存储格式如表3所示。

表3用户第一候选位置和第二候选位置数据的存储格式

字段 描述 类型 长度 举例 UID 用户标识 字符串 20字节 liming1982 Latitude 候选位置纬度 浮点数 8字节 45.219393 Longitude 候选位置经度 浮点数 8字节 120.293933 Type 位置类型(1为第一,0为第二) 布尔 1位 1

本步骤的具体过程如图3所示,如下:

步骤(3.1):从地理位置数据集中取一个尚未处理的用户;

步骤(3.2):从地理位置数据集中筛选出该用户在每天第一时间段内(本实施例为每天 晚上8:00到早上7:00之间)的记录,计算任每两条记录的地理位置的距离;基于距离的 远近对这些地理位置进行聚类,得到一系列聚合的重心,将这一系列聚合中一个或多个聚 合(本实施例设置为全部聚合)的重心作为该用户对应的第一候选位置:

上述的步骤(3.2)中,计算任每两条记录的地理位置的距离,具体计算如下:

将经纬度和分别转换为对应的弧度和;

和之间的距离为S=arccos(sin(α1)*sin(α2)+cos(α1)*cos(α2)* cos(β1-β2))*R;其中,arccos,sin,cos分别为反余弦,正弦,余弦符号,R为地球赤道半径 (默认值为6378137.0米)。

上述的步骤(3.2)中,基于距离的远近对这些地理位置进行聚类,具体步骤如下:

步骤(3.21):将每一个地理位置转化为只包含一个经纬度的聚合{};

步骤(3.22):计算每两个聚合之间的距离,两个聚合之间的距离定义为从两个聚合各 任意取一个经纬度的最大距离;

步骤(3.23):找出距离最近的两个聚合,如果该距离小于指定阈值(本实施例设置为 200米),则将这两个聚合合并成一个新的聚合,新聚合中包括原来两个聚合的所有的经 纬度,转到步骤步骤(3.22);如果该距离大于或者等于指定阈值(本实施例设置为200米), 则聚类结束;转步骤(3.2)。

上述的步骤(3.2)中,聚合的重心通过如下方法计算:假设一个聚合为{,,…,},则该聚合的重心为;

步骤(3.3):从地理位置数据集中筛选出该用户在每个工作日第二时间段内(本实施例 为周一到周五的上午9:00到下午6:00之间)的记录,计算任每两条记录的地理位置的距 离;基于距离的远近对这些地理位置进行聚类,得到一系列聚合,将这一系列聚合中的一 个或多个聚合(本实施例设置为全部聚合)的重心作为该用户的第二候选位置,具体方法 与步骤(3.2)中完全相同;

步骤(3.4):如果地理位置数据集中还有尚未处理的用户,转回步骤(3.1),否则结束; 转步骤(4);

步骤(4):收集一段时间(本实施例为一个月)内用户使用PC上网的IP地址数据, 组成IP地址数据集,每一条IP地址数据记录包括用户标识、时间和IP地址;将数据存储 到MySQL数据库;本实施例数据记录的格式如表4所示。

表4IP地址数据的存储格式

字段 描述 类型 长度 举例 UID 用户标识 字符串 20字节 liming1982 Time 时间 字符串 19字节 2012-12-12 11:12:12 IP IP地址 字符串 15字节 166.111.193.233

步骤(5):预处理收集到的IP地址数据集:将每一条记录的IP地址转化为一个IP段。 转换后的存储格式如表5所示。如果一个用户使用某个IP段的记录数目预先设定的阈值 (如低于10),则从IP地址数据集中去除该用户使用这一IP段的IP地址数据记录。上述 步骤(5)中,将一个IP地址(本实施例以IP地址166.111.120.13为例说明)转化为一个IP 段的步骤如下:

步骤(5.1):选定一个数值M(本实施例设置为24)作为IP地址转换后对应IP段所需 要保留的IP地址长度;

步骤(5.2):将该IP地址的前面24保留不变,后面的8位设置为零,得到的结果 (166.111.120.0)作为该IP地址所对应的IP段;

表5IP地址转换为IP/24段后的IP地址数据存储格式

字段 描述 类型 长度 举例 UID 用户标识 字符串 20字节 liming1982 Time 时间 字符串 19字节 2012-12-12 11:12:12 IP/24段 IP地址对应的/24段 字符串 13字节 166.111.193.0

步骤(6):对于预处理后的IP地址数据集中每一个IP/24段,筛选出使用过该IP/24 段的所有用户,根据步骤(3)获得的结果,找出所有这些用户对应的第一候选位置和第二候 选位置,作为该IP段所对应的候选地理位置;对这些候选地理位置进行聚类,得到一系列 聚合,从这一系列聚合中选出包含候选地理位置最多的聚合的重心作为该IP/24段(即该 IP段所涵盖的IP地址)所对应的地理位置。

本步骤的具体过程如下:

步骤(6.1):从预处理后的IP地址数据集中取一个尚未处理的IP/24段;

步骤(6.2):从IP地址数据集找出使用过该IP/24段的所有用户,根据步骤(3)的结果找 出所有这些用户对应的第一候选位置和第二候选位置,作为该IP段所对应的候选地理位置,计算每两个候选地理位置之间的距离,基于距离的远近进行聚类,聚类结束后将得到 一系列聚合;

上述的步骤(6.2)中,基于所有计算出的距离进行聚类的步骤如下:

步骤(6.21)将每一个候选地理位置对应的经纬度转化为只包含一个经纬度的 聚合{};

步骤(6.22)计算每两个聚合之间的距离;其中,两个聚合之间的距离定义为从两个聚 合各任意取一个经纬度的最小距离;

步骤(6.23)找出距离最近的两个聚合,如果该距离小于指定阈值(设置为500米), 则将这两个聚合合并成一个新的聚合,新聚合中包括原来两个聚合的所有的经纬度,转到 步骤(6.22);如果该距离大于或者等于指定阈值(设置为500米),则聚类结束;转步骤(6.3);

步骤(6.3):通过以下步骤选择一个聚合的重心作为该IP/24段对应的地理位置:

步骤(6.31)将所有聚合依据包含的候选位置的个数从多到少进行排序,分别记为C1, C2,…,Cn;n为聚合的个数;

步骤(6.32)如果C1包含的候选位置个数比C2多,将选择C1进行下一步处理,转(6.34), 否则转(6.33);

步骤(6.33)如果C1包含的候选位置个数与Ci一样多,则从C1,...,Ci中选出包含用户数 最多的聚合,转到(6.34);如果多个聚合包含的用户数并列第一时,则随机选择一个聚合, 转到(6.34);

步骤(6.34)计算所选择的聚合的重心作为该IP/24段对应的地理位置。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通 过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可 为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random  Access Memory,RAM)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范 围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

相关文章

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031

控制面板

您好,欢迎到访网站!
  查看权限

网站分类

最近发表

最新留言

    文章归档

    标签列表

    友情链接