ip2location/codeigniter-ip2location

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

1.4.0 2022-07-04 08:51 UTC

This package is auto-updated.

Last update: 2024-09-03 03:03:49 UTC


README

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

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

安装

controllerslibraries 上传到CodeIgniter application 文件夹。

使用

此模块可以从BIN数据库或网络服务查询IP地址信息。本节将解释如何使用此扩展从BIN数据库和网络服务查询。

项目中的示例代码位于 controllers 文件夹下。您可以通过使用 <your_domain>/index.php/ip2location_test 来运行示例代码。

BIN数据库

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

    // (optional) Define IP2Location database path. By default, the IP2LOCATION_DATABASE is pointed to *application/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);

网络服务

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

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

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 并替换 application/libraries/ip2location/ 中的副本(如果您未更改使用部分中描述的默认IP2LOCATION_DATABASE常量)。

您还可以注册 IP2Location Web Service 以获取一个免费的API密钥。

IPv4 BIN vs IPv6 BIN

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

支持

邮箱: support@ip2location.com

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