PHPackages                             ip2location/codeigniter-ip2location - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ip2location/codeigniter-ip2location

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

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 from IP address using IP2Location database.

1.4.0(3y ago)263019MITPHPCI failing

Since Jul 15Pushed 4w ago8 watchersCompare

[ Source](https://github.com/ip2location-com/codeigniter-ip2location)[ Packagist](https://packagist.org/packages/ip2location/codeigniter-ip2location)[ Docs](https://www.ip2location.com)[ RSS](/packages/ip2location-codeigniter-ip2location/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (7)Dependencies (1)Versions (6)Used By (0)

CodeIgniter IP2Location Library
===============================

[](#codeigniter-ip2location-library)

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 &amp; Longitude
- ZIP Code
- Time Zone
- Area Code
- Net Speed
- ISP
- Domain
- Mobile Information
- Weather Station Information
- Elevation
- Usage Type
- Address Type
- Category

Installation
------------

[](#installation)

Upload `controllers` and `libraries` to CodeIgniter `application` folder.

Usage
-----

[](#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 &lt;your\_domain&gt;/index.php/ip2location\_test.

### BIN Database

[](#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

[](#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

[](#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 '';
    var_dump($ipl->isIpv6('2001:4860:4860::8888'));echo '';
    print_r($ipl->ipv4ToDecimal('8.8.8.8'));echo '';
    print_r($ipl->decimalToIpv4(134744072));echo '';
    print_r($ipl->ipv6ToDecimal('2001:4860:4860::8888'));echo '';
    print_r($ipl->decimalToIpv6('42541956123769884636017138956568135816'));echo '';
    print_r($ipl->ipv4ToCidr('8.0.0.0', '8.255.255.255'));echo '';
    print_r($ipl->cidrToIpv4('8.0.0.0/8'));echo '';
    print_r($ipl->ipv6ToCidr('2002:0000:0000:1234:abcd:ffff:c0a8:0000', '2002:0000:0000:1234:ffff:ffff:ffff:ffff'));echo '';
    print_r($ipl->cidrToIpv6('2002::1234:abcd:ffff:c0a8:101/64'));echo '';
    print_r($ipl->compressIpv6('2002:0000:0000:1234:FFFF:FFFF:FFFF:FFFF'));echo '';
    print_r($ipl->expandIpv6('2002::1234:FFFF:FFFF:FFFF:FFFF'));echo '';

```

Dependencies
------------

[](#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):
- IP2Location Commercial BIN Data (Comprehensive):

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](https://www.ip2location.com/web-service/ip2location) to get one free API key.

IPv4 BIN vs IPv6 BIN
--------------------

[](#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
-------

[](#support)

Email:

Website:

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance62

Regular maintenance activity

Popularity20

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 61.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~271 days

Total

5

Last Release

1415d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d5fbe791b4a8d666a158043146d73380f05a0bea9062f0fa0852bf82f6bc762c?d=identicon)[ip2location](/maintainers/ip2location)

---

Top Contributors

[![ip2location-com](https://avatars.githubusercontent.com/u/6367210?v=4)](https://github.com/ip2location-com "ip2location-com (19 commits)")[![chrislim2888](https://avatars.githubusercontent.com/u/3418232?v=4)](https://github.com/chrislim2888 "chrislim2888 (11 commits)")[![leighmarble](https://avatars.githubusercontent.com/u/422876?v=4)](https://github.com/leighmarble "leighmarble (1 commits)")

---

Tags

codeigniter-ip2locationgeolocationgeolocation-informationip-address-databaseip-databaseip-geolocationip-lookupip2location-bin-databasegeolocationip geolocationip-lookupip-databaseip2location-bin-databasegeolocation-informationcodeigniter-ip2locationip-address-database

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ip2location-codeigniter-ip2location/health.svg)

```
[![Health](https://phpackages.com/badges/ip2location-codeigniter-ip2location/health.svg)](https://phpackages.com/packages/ip2location-codeigniter-ip2location)
```

###  Alternatives

[torann/geoip

Support for multiple Geographical Location services.

2.2k14.2M76](/packages/torann-geoip)[ip2location/ip2location-php

\[Official Release\] IP2Location PHP API to get location info from IPv4 and IPv6 address.

2133.9M33](/packages/ip2location-ip2location-php)[pulkitjalan/ip-geolocation

IP Geolocation Wrapper with Laravel Support

89164.9k1](/packages/pulkitjalan-ip-geolocation)[anthonymartin/geo-location

Powerful GeoCoding library: Retrieve bounding box coordinates, distances between geopoints, point in polygon, get longitude and latitude from addresses and more with GeoLocation for PHP

196949.5k5](/packages/anthonymartin-geo-location)[ipip/db

IPIP.net officially supported IP database ipdb format parsing library

139204.2k6](/packages/ipip-db)[ip2location/ip2location-laravel

Lookup for visitor's IP information, such as country, region, city, coordinates, zip code, time zone, ISP, domain name, connection type, area code, weather, MCC, MNC, mobile brand name, elevation and usage type.

83516.9k1](/packages/ip2location-ip2location-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
