Subject: | Didn't work. |
Summary: | Package rating comment |
Messages: | 4 |
Author: | Aaron |
Date: | 2009-01-28 11:53:31 |
Update: | 2009-01-29 07:27:48 |
|
|
|
Aaron rated this package as follows:
Utility: | Not sure |
Consistency: | Not sure |
Documentation: | Not sure |
Examples: | Not sure |
|
Aaron - 2009-01-28 11:53:31
Didn't work.
updated code:
<?php
class Geographical_Location {
public $files;
public $locationDB;
public $ip;
function __construct($ip) {
$this->files = array(
1 => _ROOT.DS.'scripts/geographical_locations/1.txt',
2 => _ROOT.DS.'scripts/geographical_locations/2.txt',
3 => _ROOT.DS.'scripts/geographical_locations/3.txt',
4 => _ROOT.DS.'scripts/geographical_locations/4.txt',
5 => _ROOT.DS.'scripts/geographical_locations/5.txt');
$this->locationDB = _ROOT.DS.'scripts/geographical_locations/5.txt';
$this->ip = $ip;
$this->ValdateIP();
$this->GetCountryName();
}
public function ValdateIP() {
$ipArray = explode('.', $this->ip);
if (count($ipArray) != 4) {
echo "<font color='red' size='3'><b>ERROR: </b> Invalid IP</font>";
return false;
} else {
return true;
}
}
public function GetCountryName() {
$ip = $this->ip;
$ip = sprintf("%u", ip2long($ip));
foreach ($this->files as $key => $value) {
$csvArray = file($value);
for ($i=0; $i<count($csvArray); $i++) {
$arrayOfLine = explode(',', $csvArray[$i]);
if ($ip >= $arrayOfLine[0] && $ip <= $arrayOfLine[1] ) {
return $countryName = $arrayOfLine[2];
}
}
}
return false;
}
public function ReturnFlagPath() {
if ($countryName = trim(ucwords(strtolower($this->GetCountryName($this->ip))) )) {
$countryName = str_replace(' ', '%20', $countryName);
return "flag/$countryName.gif";
} else {
return false;
}
}
}
?>
Er. Rochak Chauhan - 2009-01-28 12:16:55 - In reply to message 1 from Aaron
I hope you do download the database in csv/txt format. If not download it before running this class. The link is provided in the class page.
alternatively you can use API to find county from IP for free.
Its called: GeoIP API Connector
More link: http://rochakchauhan.com/blog/2009/01/27/geoip-api-connector-get-geographic-location-of-ip-address-from-geoip/
Regards,
Rochak Chauhan.
Aaron - 2009-01-28 17:17:51 - In reply to message 2 from Er. Rochak Chauhan
I will look into it.
Do you like my changes?
Er. Rochak Chauhan - 2009-01-29 07:27:48 - In reply to message 3 from Aaron
Its great that you modified it. To be honest I was more focused on GeoIP API class.
Will update it soon.
|