PHPackages                             pier-infor/geoliteip - 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. pier-infor/geoliteip

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

pier-infor/geoliteip
====================

Pier-Infor Geoliteip.

1.0.2(6y ago)04LGPL-3.0-or-laterPHPPHP ^7.0CI failing

Since Nov 8Pushed 6y ago1 watchersCompare

[ Source](https://github.com/pierre-fromager/geoliteip)[ Packagist](https://packagist.org/packages/pier-infor/geoliteip)[ Docs](https://github.com/pierre-fromager/geoliteip)[ RSS](/packages/pier-infor-geoliteip/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (3)Versions (2)Used By (0)

🐘 geoliteip
===========

[](#elephant-geoliteip)

[![TravsisBadgeBuild](https://camo.githubusercontent.com/98e43612f714ef8cdd215450f129e15e7ff1049a79e606ad29b8a1460b21355c/68747470733a2f2f7472617669732d63692e6f72672f7069657272652d66726f6d616765722f67656f6c69746569702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/pierre-fromager/geoliteip)[![Coverage](https://camo.githubusercontent.com/e71f9dec2af002b32950fde6233ef662728db51a8756d1fed2ad944337010e44/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f7069657272652d66726f6d616765722f67656f6c69746569702f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/pierre-fromager/geoliteip/)[![ScrutinizerScore](https://camo.githubusercontent.com/9cf82c213f7454c93e658e0a7c813388ea7004c89b54af178a49dd53358745d3/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f7069657272652d66726f6d616765722f67656f6c69746569702f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/pierre-fromager/geoliteip/)[![Latest Stable Version](https://camo.githubusercontent.com/b8a697c16e6580969862c5dc5c8a0afa9835f2fdff0cb6b4dcf607b9fe6bbb2e/68747470733a2f2f706f7365722e707567782e6f72672f706965722d696e666f722f67656f6c69746569702f762f737461626c65)](https://packagist.org/packages/pier-infor/geoliteip)[![Total Downloads](https://camo.githubusercontent.com/d029dfd5b6ce8d719fbecad823e5e4d5c057aa25bc641efb1b4074b0970550ec/68747470733a2f2f706f7365722e707567782e6f72672f706965722d696e666f722f67656f6c69746569702f646f776e6c6f616473)](https://packagist.org/packages/pier-infor/geoliteip)[![Latest Unstable Version](https://camo.githubusercontent.com/fc127476ecf366c2c601c3bb5c60567f93f1c146b767fd39401c9d234328e2b3/68747470733a2f2f706f7365722e707567782e6f72672f706965722d696e666f722f67656f6c69746569702f762f756e737461626c65)](https://packagist.org/packages/pier-infor/geoliteip)

Geoliteip is a php tool to use and manage maxmind GeoLite2 free databases in mmdb format.

🌊 Features
----------

[](#ocean-features)

- Use 3 free dbs as asn, country, city.
- Change db on the fly without re-instanciate.
- Input ip list from plain text file.
- Output as array, json, csv.
- Update dbs on the fly or from composer.

### 👍 Pro

[](#thumbsup-pro)

- Flexibility and scalability with factory/adapter pattern.
- Annotated and tested with full coverage.
- Changing behaviours can be simply done by overloading/adding adapters.
- All constants class centralized in src/Interfaces can be overloaded;

### 👎 Cons

[](#thumbsdown-cons)

- do not use non free GeoLite dbs (but can be extended to do the job).

👷 Dependencies
--------------

[](#construction_worker-dependencies)

- geoip2/geoip2

😇 Testing &amp; Coverage
------------------------

[](#innocent-testing--coverage)

- before running tests install db doing

```
composer run db

```

- Require xdebug to enable coverage.
- Tests all passed with php version &gt;= 7.0.
- /!\\ updater tests makes real db update from maxmind, abusing leads to a 503.

Composer
--------

[](#composer)

### Facilities run

[](#facilities-run)

- db (download and install db in assets db).
- test (pass all tests).
- coverage (pass all tests with coverage).
- testIp (run IpTest only).
- testDownloader (run DownloaderTest only).
- testFileManager (run FileManagerTest only).
- testUpdater (run UpdaterTest only).
- lint (check and fix source errors).

### Integration

[](#integration)

Best is with composer :

```
composer require pier-infor/geoliteip
```

To integrate the postInstall process, adjust your composer.json as below.

```
"scripts": {
    ...
    "post-install-cmd": [
        ...
        "PierInfor\\GeoLite\\Installer::postInstall"
    ]
}
```

#### Dummy app

[](#dummy-app)

From the root of the project, create a src folder then a file app.php inside.

Copy paste the code below in app.php

```
