ip2location/codeigniter-ip2location
Composer 安装命令:
composer require ip2location/codeigniter-ip2location
包简介
IP2Location library for CodeIgniter. Use IP2Location geolocation database to lookup the country, region, city, coordinates, zip code, time zone, ISP, domain name, connection type, area code, weather, MCC, MNC, mobile brand name, elevation, usage type, IP address type and IAB advertising category fro
关键字:
README 文档
README
This module enables users to retrieve below geolocation information from an IP address. It supports both the IPv4 and IPv6 address.
- Country
- Region
- City
- Latitude & Longitude
- ZIP Code
- Time Zone
- Area Code
- Net Speed
- ISP
- Domain
- Mobile Information
- Weather Station Information
- Elevation
- Usage Type
- Address Type
- Category
Installation
Upload controllers and libraries to CodeIgniter application folder.
Usage
This module is able to query the IP address information from either BIN database or web service. This section will explain how to use this extension to query from BIN database and web service.
Sample codes are given in this project, under controllers folder. You may run the sample code by using <your_domain>/index.php/ip2location_test.
BIN Database
Use following codes in your application for get geolocation information.
// (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');
Below are the methods supported for BIN data file lookup.
$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 Service
Use following codes in your application for get geolocation information.
// (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
Use following codes in your application for get IPTools class information.
$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>';
Dependencies
This module requires IP2Location BIN data file or IP2Location API key to function. You may download the BIN data file at
- IP2Location LITE BIN Data (Free): https://lite.ip2location.com
- IP2Location Commercial BIN Data (Comprehensive): https://www.ip2location.com
An outdated BIN database was provided in this release for your testing. You are recommended to visit the above links to download the latest BIN database.
For the BIN database update, you can just rename the downloaded BIN database to IP2LOCATION-DB.BIN and replace the copy in application/libraries/ip2location/ (if you didn't change the default IP2LOCATION_DATABASE constant as described in the Usage section).
You can also sign up for IP2Location Web Service to get one free API key.
IPv4 BIN vs IPv6 BIN
- Use the IPv4 BIN file if you just need to query IPv4 addresses.
- Use the IPv6 BIN file if you need to query BOTH IPv4 and IPv6 addresses.
SUPPORT
Email: support@ip2location.com
Website: https://www.ip2location.com
ip2location/codeigniter-ip2location 适用场景与选型建议
ip2location/codeigniter-ip2location 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 30 次下载、GitHub Stars 达 26, 最近一次更新时间为 2019 年 07 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「geolocation」 「ip-database」 「ip2location-bin-database」 「geolocation-information」 「codeigniter-ip2location」 「ip-geolocation」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ip2location/codeigniter-ip2location 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ip2location/codeigniter-ip2location 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ip2location/codeigniter-ip2location 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Maps in minutes. Powered by the Google Maps API.
The official PHP library for apiip.net that allowing customers to automate IP address validation and geolocation lookup in websites, applications and back-office system. Visit our API docs at https://apiip.net/documentation
Supports GeoIP services (sypexgeo.net).
Support for multiple GeoIP services.
Define data by IP Address
Support for multiple GeoIP services.
统计信息
- 总下载量: 30
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 26
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-07-15