Skip to content

Commit be054a6

Browse files
committed
Updated to support CakePHP 2.x and 3.x.
1 parent 083b459 commit be054a6

File tree

4 files changed

+66
-56
lines changed

4 files changed

+66
-56
lines changed

IP2Location/Lib/IP2Location.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
/*
4-
* Copyright (C) 2005-2016 IP2Location.com
4+
* Copyright (C) 2005-2017 IP2Location.com
55
* All Rights Reserved
66
*
77
* This library is free software: you can redistribute it and/or

IP2Location/Model/IP2LocationCore.php

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,24 @@
1212
* http://www.opensource.org/licenses/mit-license.php.
1313
*
1414
* @author IP2Location <[email protected]>
15-
* @copyright Copyright 2014, IP2Location.com (http://www.ip2location.com)
15+
* @copyright Copyright 2017, IP2Location.com (http://www.ip2location.com)
1616
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
17-
* @version 1.0
17+
* @version 1.1.0
1818
* @since File available since Release 2.0
1919
*/
2020

21-
App::uses('AppModel', 'Model');
22-
23-
/**
24-
* Include PEAR Net_GeoIP class
25-
*/
26-
App::import('IP2Location.Lib', 'IP2Location');
21+
if(Configure::version() < '3') {
22+
// App::uses('AppModel', 'Model');
23+
App::import('IP2Location.Lib', 'IP2Location');
24+
}
25+
else {
26+
require_once(ROOT . DS . 'plugins' . DS . 'IP2Location' . DS . 'Lib' . DS . 'IP2Location.php');
27+
}
2728

2829
/**
2930
* GeoIP Location class
3031
*/
31-
class IP2LocationCore extends AppModel
32+
class IP2LocationCore
3233
{
3334
/**
3435
* Container for data returned by the find method
@@ -57,10 +58,10 @@ class IP2LocationCore extends AppModel
5758
*/
5859
public function get($ip, $query = array())
5960
{
60-
$obj = new \IP2Location\Database(dirname(dirname(__FILE__)) . DS . 'data' . DS . 'IP2LOCATION.BIN', \IP2Location\Database::FILE_IO);
61+
$obj = new \IP2Location\Database(dirname(dirname(__FILE__)) . DS . 'data' . DS . 'IP2LOCATION.BIN', \IP2Location\Database::FILE_IO);
6162

6263
try {
63-
$records = $obj->lookup($ip, \IP2Location\Database::ALL);
64+
$records = $obj->lookup($ip, \IP2Location\Database::ALL);
6465
} catch (Exception $e) {
6566
return null;
6667
}

IP2Location/data/IP2LOCATION.BIN

890 KB
Binary file not shown.

README

Lines changed: 53 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,69 @@
1-
IP2Location CakePHP Plugin
2-
==========================
3-
IP2Location CakePHP plugin enables the user to find the country, region, city, coordinates, zip code,
4-
time zone, ISP, domain name, connection type, area code, weather, MCC, MNC, mobile brand name, elevation
5-
and usage type that any IP address or hostname originates from. It has been optimized for speed and memory
6-
utilization. Developers can use the API to query all IP2Location BIN databases for applications
7-
written using CakePHP.
1+
# IP2Location CakePHP Plugin
2+
IP2Location CakePHP plugin enables the user to find the 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 that any IP address or hostname originates from. It has been optimized for speed and memory utilization. Developers can use the API to query all IP2Location BIN databases for applications written using CakePHP.
83

94

10-
INSTALLATION
11-
------------
5+
## INSTALLATION
6+
### For CakePHP 2.x
127

13-
1. Copy the IP2Location folder to app/Plugin.
14-
2. Add "CakePlugin::load('IP2Location');" to the last line of "app/Config/bootstrap.php"
8+
1. Copy the IP2Location folder to *app/Plugin*.
9+
2. Add `CakePlugin::load('IP2Location');` to the last line of *app/Config/bootstrap.php*.
1510
3. Download IP2Location BIN database
16-
- IP2Location free LITE database at http://lite.ip2location.com
17-
- IP2Location commercial database at http://www.ip2location.com
18-
4. Unzip and copy the BIN file into app/Plugin/IP2Location/data folder.
11+
- IP2Location free LITE database at http://lite.ip2location.com
12+
- IP2Location commercial database at http://www.ip2location.com
13+
4. Unzip and copy the BIN file into *app/Plugin/IP2Location/data* folder.
1914
5. Rename the BIN file to IP2LOCATION.BIN.
2015

21-
Note: The plugin has included an old BIN database for your testing and development purpose.
16+
### For CakePHP 3.x
17+
18+
1. Copy the IP2Location folder to *plugins* folder.
19+
2. Download IP2Location BIN database
20+
- IP2Location free LITE database at http://lite.ip2location.com
21+
- IP2Location commercial database at http://www.ip2location.com
22+
3. Unzip and copy the BIN file into *plugins/IP2Location/data* folder.
23+
4. Rename the BIN file to IP2LOCATION.BIN.
24+
5. Add `use Cake\Core\Configure;` to line20 of *plugins/IP2Location/Model/IP2LocationCore.php*.
25+
26+
**Note:** The plugin has included an old BIN database for your testing and development purpose.
2227
You may want to download a latest copy of BIN database as the URL stated above.
2328
The BIN database refers to the binary file ended with .BIN extension, but not the CSV format.
2429
Please select the right package for download.
2530

26-
USAGE
27-
---------------
31+
## USAGE
32+
```
33+
if (Configure::version() < '3') {
34+
App::uses('IP2LocationCore', 'IP2Location.Model');
35+
}
36+
else {
37+
require_once(ROOT . DS . 'plugins' . DS . 'IP2Location' . DS . 'Model' . DS . 'IP2LocationCore.php');
38+
}
2839

29-
App::uses('IP2LocationCore', 'IP2Location.Model');
3040
$IP2Location = new IP2LocationCore();
3141
$record = $IP2Location->get($this->request->clientIp());
3242

33-
echo 'IP Address: ' . $record['ipAddress'] . '<br />';
34-
echo 'IP Number: ' . $record['ipNumber'] . '<br />';
35-
echo 'ISO Country Code: ' . $record['countryCode'] . '<br />';
36-
echo 'Country Name: ' . $record['countryName'] . '<br />';
37-
echo 'Region Name: ' . $record['regionName'] . '<br />';
38-
echo 'City Name: ' . $record['cityName'] . '<br />';
39-
echo 'Latitude: ' . $record['latitude'] . '<br />';
40-
echo 'Longitude: ' . $record['longitude'] . '<br />';
41-
echo 'ZIP Code: ' . $record['zipCode'] . '<br />';
42-
echo 'Time Zone: ' . $record['timeZone'] . '<br />';
43-
echo 'ISP Name: ' . $record['isp'] . '<br />';
44-
echo 'Domain Name: ' . $record['domainName'] . '<br />';
45-
echo 'Net Speed: ' . $record['netSpeed'] . '<br />';
46-
echo 'IDD Code: ' . $record['iddCode'] . '<br />';
47-
echo 'Area Code: ' . $record['areaCode'] . '<br />';
48-
echo 'Weather Station Code: ' . $record['weatherStationCode'] . '<br />';
49-
echo 'Weather Station Name: ' . $record['weatherStationName'] . '<br />';
50-
echo 'MCC: ' . $record['mcc'] . '<br />';
51-
echo 'MNC: ' . $record['mnc'] . '<br />';
52-
echo 'Mobile Carrier Name: ' . $record['mobileCarrierName'] . '<br />';
53-
echo 'Elevation: ' . $record['elevation'] . '<br />';
54-
echo 'Usage Type: ' . $record['usageType'] . '<br />';
55-
56-
57-
SUPPORT
58-
-------
43+
echo 'IP Address: ' . $record['ipAddress'] . '<br>';
44+
echo 'IP Number: ' . $record['ipNumber'] . '<br>';
45+
echo 'ISO Country Code: ' . $record['countryCode'] . '<br>';
46+
echo 'Country Name: ' . $record['countryName'] . '<br>';
47+
echo 'Region Name: ' . $record['regionName'] . '<br>';
48+
echo 'City Name: ' . $record['cityName'] . '<br>';
49+
echo 'Latitude: ' . $record['latitude'] . '<br>';
50+
echo 'Longitude: ' . $record['longitude'] . '<br>';
51+
echo 'ZIP Code: ' . $record['zipCode'] . '<br>';
52+
echo 'Time Zone: ' . $record['timeZone'] . '<br>';
53+
echo 'ISP Name: ' . $record['isp'] . '<br>';
54+
echo 'Domain Name: ' . $record['domainName'] . '<br>';
55+
echo 'Net Speed: ' . $record['netSpeed'] . '<br>';
56+
echo 'IDD Code: ' . $record['iddCode'] . '<br>';
57+
echo 'Area Code: ' . $record['areaCode'] . '<br>';
58+
echo 'Weather Station Code: ' . $record['weatherStationCode'] . '<br>';
59+
echo 'Weather Station Name: ' . $record['weatherStationName'] . '<br>';
60+
echo 'MCC: ' . $record['mcc'] . '<br>';
61+
echo 'MNC: ' . $record['mnc'] . '<br>';
62+
echo 'Mobile Carrier Name: ' . $record['mobileCarrierName'] . '<br>';
63+
echo 'Elevation: ' . $record['elevation'] . '<br>';
64+
echo 'Usage Type: ' . $record['usageType'] . '<br>';
65+
```
66+
67+
## SUPPORT
5968
6069
Website: http://www.ip2location.com

0 commit comments

Comments
 (0)