ip2location/ip2location-cakephp

查找访问者的IP信息,例如国家、地区、城市、坐标、邮编、时区、ISP、域名、连接类型、区号、天气、MCC、MNC、手机品牌、海拔和用途类型。

1.2.1 2023-12-11 04:31 UTC

This package is auto-updated.

Last update: 2024-09-03 09:15:50 UTC


README

Latest Stable Version Total Downloads

IP2Location CakePHP插件允许用户通过IP2Location数据库从IP地址中查找国家、地区、城市、坐标、邮编、时区、ISP、域名、连接类型、区号、天气、MCC、MNC、手机品牌、海拔和用途类型,以及IP地址类型和IAB广告类别。它已经针对速度和内存利用率进行了优化。开发人员可以使用API查询所有IP2Location BIN数据库或Web服务,以用于使用CakePHP编写的应用程序。

安装

对于CakePHP 4.x

  1. 运行命令:composer require ip2location/ip2location-cakephp 将插件下载到CakePHP 4平台。
  2. 下载最新的IP2Location BIN数据库
  3. 解压并将BIN文件复制到/vendor/ip2location/ip2location-cakephp/src/Data文件夹。
  4. 将BIN文件重命名为IP2LOCATION.BIN。

注意:插件包含了一个旧的BIN数据库供您测试和开发使用。您可能需要下载上述URL中提到的最新版本的BIN数据库。BIN数据库是指以.BIN扩展名结尾的二进制文件,而不是CSV格式。请选择正确的包进行下载。

使用方法

在本教程中,我们将向您展示如何创建一个用于显示IP信息的TestsController

  1. 使用以下命令在CakePHP 4中创建一个TestsController
php bin/cake bake controller Tests
  1. 如果不存在,则在/cakephp/templates中创建一个名为Tests的文件夹。
  2. /cakephp/templates/Tests文件夹中创建一个空的index.php文件。
  3. 在任何文本编辑器中打开cakephp/src/Controller/TestsController.php
  4. 删除TestsController.php中的内容,并将以下行添加到控制器文件中。

注意:您只需使用use IP2LocationCakePHP\Controller\IP2LocationCoresController加载IP2Location库即可使用函数。

<?php
namespace App\Controller;

use App\Controller\AppController;
use IP2LocationCakePHP\Controller\IP2LocationCoresController;

// (required) Define IP2Location.io API key.
define('IP2LOCATION_IO_API_KEY', 'your_api_key');

// (optional) Define Translation information. Refer to https://www.ip2location.io/ip2location-documentation for available languages.
define('IP2LOCATION_IO_LANGUAGE', 'en');

/**
 * Tests Controller
 */
class TestsController extends AppController
{

    /**
     * Index method
     *
     * @return \Cake\Http\Response|void
     */
    public function index()
    {
        $IP2Location = new IP2LocationCoresController();

        $record = $IP2Location->get('8.8.8.8');
        echo 'Result from BIN Database:<br>';
        echo 'IP Address: ' . $record['ipAddress'] . '<br>';
        echo 'IP Number: ' . $record['ipNumber'] . '<br>';
        echo 'ISO Country Code: ' . $record['countryCode'] . '<br>';
        echo 'Country Name: ' . $record['countryName'] . '<br>';
        echo 'Region Name: ' . $record['regionName'] . '<br>';
        echo 'City Name: ' . $record['cityName'] . '<br>';
        echo 'Latitude: ' . $record['latitude'] . '<br>';
        echo 'Longitude: ' . $record['longitude'] . '<br>';
        echo 'ZIP Code: ' . $record['zipCode'] . '<br>';
        echo 'Time Zone: ' . $record['timeZone'] . '<br>';
        echo 'ISP Name: ' . $record['isp'] . '<br>';
        echo 'Domain Name: ' . $record['domainName'] . '<br>';
        echo 'Net Speed: ' . $record['netSpeed'] . '<br>';
        echo 'IDD Code: ' . $record['iddCode'] . '<br>';
        echo 'Area Code: ' . $record['areaCode'] . '<br>';
        echo 'Weather Station Code: ' . $record['weatherStationCode'] . '<br>';
        echo 'Weather Station Name: ' . $record['weatherStationName'] . '<br>';
        echo 'MCC: ' . $record['mcc'] . '<br>';
        echo 'MNC: ' . $record['mnc'] . '<br>';
        echo 'Mobile Carrier Name: ' . $record['mobileCarrierName'] . '<br>';
        echo 'Elevation: ' . $record['elevation'] . '<br>';
        echo 'Usage Type: ' . $record['usageType'] . '<br>';
        echo 'Address Type: ' . $record['addressType'] . '<br>';
        echo 'Category: ' . $record['category'] . '<br>';

        $record = $IP2Location->getWebService('8.8.8.8');
        echo 'Result from Web service:<br>';
        echo '<pre>';
        print_r ($record);
        echo '</pre>';

        var_dump($IP2Location->isIpv4('8.8.8.8'));echo '<br>';
        var_dump($IP2Location->isIpv6('2001:4860:4860::8888'));echo '<br>';
        print_r($IP2Location->ipv4ToDecimal('8.8.8.8'));echo '<br>';
        print_r($IP2Location->decimalToIpv4(134744072));echo '<br>';
        print_r($IP2Location->ipv6ToDecimal('2001:4860:4860::8888'));echo '<br>';
        print_r($IP2Location->decimalToIpv6('42541956123769884636017138956568135816'));echo '<br>';
        print_r($IP2Location->ipv4ToCidr('8.0.0.0', '8.255.255.255'));echo '<br>';
        print_r($IP2Location->cidrToIpv4('8.0.0.0/8'));echo '<br>';
        print_r($IP2Location->ipv6ToCidr('2002:0000:0000:1234:abcd:ffff:c0a8:0000', '2002:0000:0000:1234:ffff:ffff:ffff:ffff'));echo '<br>';
        print_r($IP2Location->cidrToIpv6('2002::1234:abcd:ffff:c0a8:101/64'));echo '<br>';
        print_r($IP2Location->compressIpv6('2002:0000:0000:1234:FFFF:FFFF:FFFF:FFFF'));echo '<br>';
        print_r($IP2Location->expandIpv6('2002::1234:FFFF:FFFF:FFFF:FFFF'));echo '<br>';
    }

}
  1. 输入URL /Tests并运行。您应该看到IP地址8.8.8.8的信息。

依赖项

此库需要IP2Location BIN数据文件或IP2Location API密钥才能运行。您可以在以下位置下载BIN数据文件:

您还可以注册IP2Location.io IP地理位置API以获取一个免费API密钥。

IPv4 BIN与IPv6 BIN

如果您只需查询IPv4地址,请使用IPv4 BIN文件。

如果您需要查询IPv4和IPv6地址,请使用IPv6 BIN文件。

支持

邮箱:support@ip2location.com

网站:https://www.ip2location.com