最近我使用Maxmind geoip来定位country&城市基于IP。它在dat文件中有很大的内容。但是在几秒钟内检索这些记录。所以我很好奇在php中学习和使用这项技术。
首先我看到一些视频文件正在使用这个.dat扩展文件和现在的文本信息。那么什么是.dat扩展呢?是否可以在php中读写。
谢谢!
答案 0 :(得分:5)
据我所知, dat 扩展名是指一个通用文件,您可以在其中以您希望的格式编写所需内容。
我的意思是,在每个文件中你都可以这样做,但一般来说,如果你找到一个 xml文件,你会认为你在里面找到了xml格式的文本;相反, dat 文件如果您不知道是谁以及如何编写,则无法识别您可以使用特定软件解码的内容。
答案 1 :(得分:0)
这些文件很可能是他们开发的自定义格式;如果它是开源的,你可以在PHP中重新实现它(如果它还没有用PHP编写),或者可以通过API访问数据。
速度将来自于它将以某种方式编入索引,或者就像“每个记录移动100个字节进一步进入文件”。
答案 2 :(得分:0)
这里有很多问题。
首先,文件是database - 它存储数据。有很多数据库模型 - 关系型,层次型,面向对象,矢量,超立方体,密钥库......所有这些都可以实现。
某些数据库比其他数据库更适合管理特定数据结构。地理空间数据是一种常见的专业化 - 以至于许多其他数据库类型将提供向量功能(例如,mysql和postgresql是关系数据库)。
对于大多数数据库系统,使用数据库服务的应用程序不直接访问数据文件 - 而是通过另一个进程调解访问 - 这与PHP特别相关,因为它通常作为多个独立进程运行而没有复杂文件锁定功能。
因此,如果您希望自己将IP实现为地理信息,我建议您坚持使用关系数据库或nosql密钥库(您不需要使用地理空间来进行正向查找)。
但请记住,IP地理查询数据并不像销售产品的人那样准确/准确。如果您的目标是获取有关用户的准确位置信息,HTML5 geolocation API会提供更好的数据 - 问题是用户浏览器上的功能是否可用。