主流定位技术简介

Posted on 2014-04-30 by Shawn Wang

Posted in others

Note: 本文中的大多观点是本人总结而来, 如有缺误, 请直接指出讨论。 我们将对各种定位技术做一个浏览, 并对IP定位技术进行深入一些的探讨。

Overview

无线网络繁荣催生了LBS(location based service)技术和应用的快速发展。 这些定位技术从数据源的维度大概分为以下几类:

  • Locate IP

IP段依根据地域分配, 还有一部分从IP是固定分配的。 这样能够有对应关系的信息就形成了数据库。通过这样的数据库, 使得我们能够根据一个IP地址获得IP地址信息。

  1. 腾讯IP分享计划
  2. 新浪IP开放接口
  3. 百度OPEN API
  4. 淘宝IP地址说库
  5. 纯真
  6. MaxMind

局限: IP分配信息的可靠信和ISP相关, 另外大量的IP是随机分配的, 固定分配的IP也会因为各种原因发生变化, 数据库永远不是即时的, 地点是不精确的

  • GPS定位

GPS loaction

位于太空不同位置的GPS卫星不停地向全地球广播自己的当前坐标, 运行状态等信息, 任何GPS接收器都可以通过天线进行接收, 这些来自不同GPS的广播信息就成为了GPS模块位自己位置的数据源。 我们把数据想像成 [position1, d1], [position2, d2], [position3, d3], [position4, d4]
从几何学上的知识我们知道, 二条向量直线就可以在三维空间里面确定一个点, 通过三组[postion, d]值就可以得到两条这样的直线, 之所以需要四组数据, 是因为计算模型里面的一些参数会受到客观条件的影响, 所以会进行计算并舍弃一组不精确的数据。

局限: 需要GPS硬件单元和能够接收到GPS信号。

  • 基于WIFI技术定位

每一个AP都有一个全球唯一的MAC地址, 我们无线网卡在扫描wifi的时候, 都会收集到这些信息, 而应用提供商在得到许可后, 使用这数据, 从位置服务器中检索出AP的位置并跟据信息强度计算出设备的地理位置。

位置服务商数据来源?

  1. Google
  2. skyhook
  3. Apple

局限: 甚至AP不如基站位置固定, 跟据wifi强度定位也不能完全精确。

  • 基于基站技术定位

原理与wifi定位类似, 不过相对wifi而言,基站要更加稳定,但是更加不精准

  • 蓝牙, 声波等

应用较少,原理类似。

一些更多参考资料




应用场景

从定位目标的维度, 又可以分为以下几类

  • 以使用浏览器的用户(系统或服务的使用者)

W3C - 应用编程接口(Geoloaction API), API开发者整合并提供了我们常见的位置来源信息,如GPS, IP, RFID, WIFI, bluetooth , MAC

一段示例码

function showMap(position){
    //Make action for a (postion.coords.latitude, posistion.coords.longtitude)
}
// One-shot position request.
navigator.geolocation.getCurrentPosition(showMap);

Position接口

interface Position {
    readonly attribute Coordinates coords;
    readonly attribute DOMTimeStamp timestamp;
  };

Coordinates接口

interface Coordinates {
    readonly attribute double latitude;
    readonly attribute double longitude;
    readonly attribute double? altitude;
    readonly attribute double accuracy;
    readonly attribute double? altitudeAccuracy;
    readonly attribute double? heading;
    readonly attribute double? speed;
  };

W3C Geolocation Demo

局限:只针对使用浏览器的客户, IE支持不力

  • 服务器

IP定位技术, 选择合适的数据库通过IP地址来map该IP对应的信息。 IP追踪技术, 通过攻击时的处理机制




IP locating

选择合适的数据库通过IP地址来map该IP对应的信息

Mapping

maxmind

  • GeoIP2

    • GeoIP2 web
    • GeoIP2 JavaScript
    • GeoIP2 db
    • GeoLite2
  • GeoIP Legacy

    • GeoIP Legacy web services
    • ... ...

Example of GeoLite2:

GEOLITE2


  • unzip file get GeoLite2-City.mmdb in "/home/shawn/Dropbox/code/GeoLite_demo/"

  • install geoip2

$ pip install geoip2
  • test code
import geoip2.database
# This creates a Reader object. You should use the same object
# across multiple requests as creation of it is expensive.
reader = geoip2.database.Reader('/path/to/GeoLite2-City.mmdb')
# Replace "city" with the method corresponding to the database
# that you are using, e.g., "country".
response = reader.city('128.101.101.101')
response.country.iso_code
#US
response.country.name
'United States'
response.country.names['zh-CN']
#u'美国'
response.subdivisions.most_specific.name
#'Minnesota'
response.subdivisions.most_specific.iso_code
#'MN'
response.city.name
#'Minneapolis'
response.postal.code
#'55455'
response.location.latitude
#44.9733
response.location.longitude
#-93.2323

GeoLite2 Demo

  • 局限:

    • 精确度, maxmind的精确度(特别是国内数据)有限, 详情戳
    • license
    • 定时更新

纯真

  • 与maxmind差异:

    • 据说更精确
    • 无license

Tracking

应用场景: 非真实IP, 间接访问服务器或者模拟IP的原因场景有很多, 例如:GFW, hack PC/services, 更好的访问速度和体验, 其他原因的匿名 概述: IP追踪是指在IP对服务器进行交互时或者交互后根据获得的相应信息,找到真实的发起IP的地理位置信息。

DDoS攻击的IP追踪及定位

  • 攻击后追踪

    • 数据包日志记录
    • 分组标记法
    • ICMP追踪
  • 攻击中追踪

    • 基于IPsec
    • 链路测试法
    • 逐跳追踪


ip locating gps maxmind geolite2

Donation

Latest Posts

在 VPS 上搭建 Cisco IPsec|L2TP over IPsec 的极简攻略

三年前我写过一篇在VPS上搭建PPTP VPN的极简攻略, 不过一年前我就不再使用 PPTP VPN 了,最主要的原因是因为 macOS 完全不支持 PPTP;另一个原因是基于 ipsec 协议的 VPN 更加安全,IPsec 协议会加密你的网络数据, 避免泄漏或者中间人攻击。所以现在对于需要全局代

为什么应该使用本地广播(LocalBroadcastManager)

从 Android 诞生已来,就一直有所谓的四大组件,BroadcastReceiver 是其中之一。 几乎在各种样的应用中都有 BroadcastReceiver 的使用,它被应用于接收系统发送的消息以及与其他应用之间的交互,但也被大量的误用于应用内部通信。 然而在同应用中使用则违背 Broadc

推荐 Vocabulary.com

阅读之前如果你还在思考背单词的意义,我建议你先想清楚,或者参考别人的意见,例如知乎的讨论 背单词是必须吗 等问题。 从英语方面来说,我肯定不是大神,小神都算不上。 我背单词的路径基本是 中学大学英语书附录 -> 高频词汇书 -> 扇贝单词 -> Vocabulary.com。 那为什么要来推荐 Vo

Comments