基于IP返回地理数据 - 使用Maxmind数据库(免费/商业版)

安装次数: 3 133

依赖: 0

建议: 0

安全: 0

星级: 3

关注者: 3

分支: 2

开放问题: 0

类型:typo3-cms-extension

1.0.1 2020-03-22 00:19 UTC

This package is auto-updated.

Last update: 2024-09-06 20:41:17 UTC


README

https://poser.pugx.org/sourcebroker/ip2geo/license

它做什么?

此扩展提供调度器任务以下载maxmind数据库(免费或商业版)和一些用于获取国家、大洲等有趣内容的类方法。

如何安装?

  1. 使用composer安装

    composer require sourcebroker/ip2geo
    
  2. 转到调度器模块并添加新任务"下载地理位置数据库"

  3. 添加调度器任务时需要两个参数

    1. 数据库名称。这可以是一个任意字符串。例如:"freeCountry","commercialCountry"。此名称将在php代码中稍后使用,如GeoIp::getInstance('freeCountry')
    2. 下载URL。Maxmind数据库下载链接。
  4. 运行调度器并检查文件夹/uploads/tx_ip2geo/。数据库应下载到该文件夹。

如何使用?

在您的代码中,使用以下调用获取数据

  1. 对于国家数据库

    $countryCode = GeoIp::getInstance('freeCountry')->getCountryCode(); // assuming you named database with "freeCountry" in scheduler task
    

    对于IP 83.97.23.149,您将获得"DE"作为响应

  2. 对于城市数据库

    $locationData = GeoIp::getInstance('freeCity')->getLocation(); // assuming you named database with "freeCity" in scheduler task
    

    对于IP 83.97.23.149,您将获得以下数据作为响应

    Array
    (
       [continentCode] => EU
       [countryCode] => DE
       [countryName] => Germany
       [city] => Berlin
       [postalCode] => 10178
       [latitude] => 52.5196
       [longitude] => 13.4069
    )
    

附加选项

您可以在$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ip2geo']中为此扩展设置一些选项。您可以使用typo3conf/LocalConfiguration文件来存储这些值。

  1. defaultLocalIP 对于本地开发,您的IP通常是127.0.0.1,而这个IP当然不在Maxmind数据库中。在这种情况下,Maxmind API将返回"The address 127.0.0.1 is not in the database."。您可以通过设置默认IP来解决这种情况,如果检测到的IP是127.0.0.1。例如配置

    'EXTCONF' => [
      'ip2geo' => [
        'defaultLocalIP' => '83.97.23.149',
      ],
    ],
    
  2. fakeIpHeaderName 这是您可以用来覆盖IP值的头名称。此值必须是唯一的,这样除了您之外没有人可以覆盖IP。提示:一个设置头的不错Chrome扩展是"ModHeader"。例如

    'EXTCONF' => [
      'ip2geo' => [
        'fakeIpHeaderName' => 'myFakeIpHeader1991718263162831',
      ],
    ],
    

fakeIpHeaderName 在设置时具有优先级高于defaultLocalIP

变更日志

查看https://github.com/sourcebroker/ip2geo/blob/master/CHANGELOG.rst