it-blaster/ip-geo-base-bundle

使用 Propel 与 IpGeoBase 数据库协同工作

安装: 97

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 9

分支: 3

公开问题: 0

类型:symfony-bundle

v1.0.1 2015-05-20 11:56 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:24:15 UTC


README

Scrutinizer Code Quality Build Status License Total Downloads Latest Unstable Version Latest Stable Version

使用 Propel 与 IpGeoBase 数据库协同工作

安装

1.it-blaster/ip-geo-base-bundle 添加到您的 composer.json

...
"require": {
    "it-blaster/ip-geo-base-bundle": "1.0.*"
}
...

2.AppKernel.php 中注册该扩展包

...
new Fenrizbes\IpGeoBaseBundle\FenrizbesIpGeoBaseBundle(),
...

3. 构建模型,生成并应用迁移

4. 运行导入所有 IpGeoBase 数据的命令

php app/console ipgeobase:update

使用方法

该扩展包的服务 ip_geo_base 包含两个方法

  1. getIpInfo 返回关于 IP(一个范围和国家代码)的信息,或返回 null
  2. getIpCity 返回 GeoCity 模型的实例或 null。您可以配置默认城市,如果没有找到正确的城市(请参阅 Configuration 部分)。

默认情况下,IP 地址从 Symfony 请求中获取,但您可以手动传递,如果您愿意的话

$this->get('ip_geo_base')->getIpInfo('92.242.13.250');

配置

有两个可选参数可以设置

  1. default_city - 默认城市 ID。您可以在 geo_city 表中找到它。
  2. enabled - IP 侦测服务的状态(默认 true)。如果您需要暂时禁用此服务,可以将其设置为 false。在这种情况下,getIpCity 方法将始终返回 null 或默认城市(如果已配置)。

示例

fenrizbes_ip_geo_base:
    default_city: 2732
    enabled: false

导入和更新数据

该扩展包包含一个命令,用于导入数据(如果您是第一次运行它)或更新它

php app/console ipgeobase:update

默认情况下,数据文件是从 http://ipgeobase.ru/files/db/Main/geo_files.zip URL 获取的。如果您想更改数据源,可以将您的 URL 传递给 source 选项

php app/console ipgeobase:update --source="http://my-syte.com/geo_files.zip"

或者自己下载存档并传递本地路径

php app/console ipgeobase:update --source="/path/to/geo_files.zip"

您还可以从文本文件更新数据(但请记住,它们的名称必须与 IpGeoBase 存档中的名称相同)

php app/console ipgeobase:update --source="/path/to/cities.txt"
php app/console ipgeobase:update --source="/path/to/cidr_optim.txt"