CodeIgniter Forums

Full Version: GeoIP Lookup Plugin
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2

El Forum

[eluser]ptrippett[/eluser]
Hi,

Here is a GeoIP plugin for CI. The import does hang until complete but i wanted to keep it as a plugin rather than making a Ajax frontend and making possible integration a nightmare.

Instructions are below and the code can be downloaded from http://code.google.com/p/ci-geoip/

Any questions or comments please post to this thread.

Code:
/*
     * GeoIP Plugin for CodeIgniter/Blueflame - Version 1
     * Writted By Paul Trippett (ptrippett_at_gmail.com)
     *
     * To use this plugin you must create a table in your database with
     * the following schema: -
     *
     * CREATE TABLE  `geoip` (
     *   `id` int(10) unsigned NOT NULL auto_increment,
     *   `ip_start` varchar(15) NOT NULL,
     *   `ip_end` varchar(15) NOT NULL,
     *   `ipnum_start` float NOT NULL,
     *   `ipnum_end` float NOT NULL,
     *   `country_code` char(2) NOT NULL,
     *   PRIMARY KEY  (`id`),
     *   KEY `geoip_lookup` USING BTREE (`ipnum_start`,`ipnum_end`)
     * ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     *
     *
     * Place this file in your application/plugins/ directory and download the
     * following files in to the {ci_root}/updates/geoip/ directory.
     *
     *      ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
     *      ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
     *      ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
     *      ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
     *      ftp://ftp.ripe.net/ripe/stats/delegated-ripencc-latest
     *      ftp://ftp.apnic.net/pub/stats/iana/delegated-iana-latest
     *
     * You should then be able to use the following code in your controller: -
     *
     *      Import:
     *      $this->load->plugin('geoip');
     *      geoip_update();
     *
     *      Country Lookups:
     *      $this->load->plugin('geoip');
     *      geoip_lookup('xxx.xxx.xxx.xxx');
     *
     * geoip_update() needs only to be called _once_ after you update the files
     * from the RIR FTP sites.
     *
     * Should you wish to place the files in a different directory or use a
     * different table name you can put the following code in your
     * /application/config/config.php file: -
     *
     *      define('GEOIP_TABLENAME', 'geoip');
     *      define('GEOIP_FILESOURCE', 'updates/geoip/');
     *
     */

UPDATED:
Sorry my ex employer deleted the code Sad Better late than never but the code is now hosted at Google Code. The original link in this post has been updated.

El Forum

[eluser]yello[/eluser]
Does anyone have the plugin files? I would die for those right now and the link is broken! Sad

Thanks

El Forum

[eluser]llbbl[/eluser]
I'm guessing send this guy an email:
paul_at_techxpert_co_uk

El Forum

[eluser]esra[/eluser]
[quote author="yello" date="1194076850"]Does anyone have the plugin files? I would die for those right now and the link is broken! Sad

Thanks[/quote]

I believe that Felice Ostuni (felix) used a similar approach for automatic language (locale) selection in Rapyd. Rapyd is available on CiForge and on the Rapyd site. There should be links on the wiki page.

El Forum

El Forum

[eluser]ptrippett[/eluser]
The ftp links originally posted are still valid.

El Forum

[eluser]seocoder[/eluser]
oops. sorry.
did't work day ago

El Forum

[eluser]ptrippett[/eluser]
I would be suprised if the links above ever changed, there are probably thousands of applications that use those files for various tools and use automatic import routines to fetch the files. Smile

FFR: Most of the ftp's listed do carry a mirror of other nic's files also

Smile

El Forum

[eluser]megabyte[/eluser]
K, I have a couple quesitons. There are two major players maxmind and ip2location that sell geoip databases for a few hundred dollars.

So where does this plugin and ftp downlaods fit into this sorta thing?

El Forum

[eluser]stef25[/eluser]
Your code generates errors: undefined variable $type on line 149. If I'm not mistaken it should probably be changed to $data[2].

Using http://codeigniter.com/wiki/Geo_Locater/ instead.
Pages: 1 2