it-blaster / ip-geo-base-bundle
使用 Propel 与 IpGeoBase 数据库协同工作
v1.0.1
2015-05-20 11:56 UTC
Requires
- php: >=5.3.2
- ext-fileinfo: *
- propel/propel-bundle: 1.*
- symfony/framework-bundle: ~2.1
This package is not auto-updated.
Last update: 2024-09-14 16:24:15 UTC
README
使用 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
包含两个方法
getIpInfo
返回关于 IP(一个范围和国家代码)的信息,或返回null
。getIpCity
返回 GeoCity 模型的实例或null
。您可以配置默认城市,如果没有找到正确的城市(请参阅Configuration
部分)。
默认情况下,IP 地址从 Symfony 请求中获取,但您可以手动传递,如果您愿意的话
$this->get('ip_geo_base')->getIpInfo('92.242.13.250');
配置
有两个可选参数可以设置
default_city
- 默认城市 ID。您可以在geo_city
表中找到它。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"