ip2location/ip2location-codeigniter4

适用于CodeIgniter 4的IP2Location库。使用IP2Location地理位置数据库查找国家、地区、城市、坐标、邮编、时区、ISP、域名、连接类型、区号、天气、MCC、MNC、手机品牌名称、海拔、使用类型、IP地址类型和IAB广告类别。

1.1.1 2023-11-28 00:24 UTC

This package is auto-updated.

Last update: 2024-09-03 09:38:29 UTC


README

此模块允许用户从IP地址检索以下地理位置信息。它支持IPv4和IPv6地址。

  • 国家
  • 地区
  • 城市
  • 纬度 & 经度
  • 邮编
  • 时区
  • 区号
  • 网络速度
  • ISP
  • 域名
  • 手机信息
  • 气象站信息
  • 海拔
  • 使用类型
  • 地址类型
  • 类别

此库仅适用于CodeIgniter 4。对于CodeIgniter 3,您可以从这里获取。

安装

ControllersLibrariesModels上传到CodeIgniter app文件夹。

使用方法

此模块能够从BIN数据库或Web服务查询IP地址信息。本节将解释如何使用此扩展从BIN数据库和Web服务进行查询。

此项目在Controllers文件夹中提供了示例代码。将以下行添加到app\Config\Routes.php文件后,您可以使用<your_domain>/index.php/ip2location_test运行示例代码。

$routes->get('ip2location_test', 'IP2Location_test::index');

BIN数据库

在您的应用程序中使用以下代码以获取地理位置信息。

    // (optional) Define IP2Location database path. By default, the IP2LOCATION_DATABASE is pointed to *app/Libraries/IP2Location/IP2LOCATION-DB.BIN* if you choose not to change the original settings.
    define('IP2LOCATION_DATABASE', '/path/to/ip2location/database');

    $ipl = new IP2Location_lib();
    $countryCode = $ipl->getCountryCode('8.8.8.8');

以下是对BIN数据文件查找支持的方法。

    $countryCode = $ipl->getCountryCode($ip);
    $countryName = $ipl->getCountryName($ip);
    $regionName = $ipl->getRegionName($ip);
    $cityName = $ipl->getCityName($ip);
    $latitude = $ipl->getLatitude($ip);
    $longitude = $ipl->getLongitude($ip);
    $isp = $ipl->getISP($ip);
    $domainName = $ipl->getDomainName($ip);
    $zipCode = $ipl->getZIPCode($ip);
    $timeZone = $ipl->getTimeZone($ip);
    $netSpeed = $ipl->getNetSpeed($ip);
    $iddCode = $ipl->getIDDCode($ip);
    $areaCode = $ipl->getAreaCode($ip);
    $weatherStationCode = $ipl->getWeatherStationCode($ip);
    $weatherStationName = $ipl->getWeatherStationName($ip);
    $mcc = $ipl->getMCC($ip);
    $mnc = $ipl->getMNC($ip);
    $mobileCarrierName = $ipl->getMobileCarrierName($ip);
    $elevation = $ipl->getElevation($ip);
    $usageType = $ipl->getUsageType($ip);
    $addressType = $ipl->getAddressType($ip);
    $category = $ipl->getCategory($ip);

Web服务

在您的应用程序中使用以下代码以获取地理位置信息。

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

    // (required) Define IP2Location Web service package of different granularity of return information.
    define('IP2LOCATION_PACKAGE', 'WS1');

    // (optional) Define to use https or http.
    define('IP2LOCATION_USESSL', false);

    // (optional) Define extra information in addition to the above-selected package. Refer to https://www.ip2location.com/web-service/ip2location for the list of available addons.
    define('IP2LOCATION_ADDONS', []);

    // (optional) Define Translation information. Refer to https://www.ip2location.com/web-service/ip2location for available languages.
    define('IP2LOCATION_LANGUAGE', 'zh-cn');

    $ipl = new IP2Location_lib();
    print_r ($ipl->getWebService('8.8.8.8'));

要使用IP2Location.io API获取地理位置信息,您可以使用以下代码

	// (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', 'zh-cn');

    $ipl = new IP2Location_lib();
    print_r ($ipl->getWebService('8.8.8.8'));

MySQL查询

在您的应用程序中使用以下代码以获取地理位置信息。

    define('IP2LOCATION_DATABASE_TABLE', 'ip2location_table_name');

    $db = model('IP2Location_model', false);
    print_r ($db->lookup('8.8.8.8'));

IPTools

在您的应用程序中使用以下代码以获取IPTools类信息。

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

依赖关系

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

此版本提供了过时的BIN数据库以供测试。建议您访问上述链接以下载最新的BIN数据库。

对于BIN数据库更新,只需将下载的BIN数据库重命名为IP2LOCATION-DB.BIN并替换app/Libraries/IP2Location/中的副本(如果您未更改用法部分中描述的默认IP2LOCATION_DATABASE常量)。

您还可以注册IP2Location Web ServiceIP2Location.io IP GEOLOCATION API以获取一个免费API密钥。

IPv4 BIN与IPv6 BIN

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

支持

邮箱: support@ip2location.com

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