Remove Ip localization

This commit is contained in:
Dennis Eichhorn 2017-04-01 15:25:54 +02:00
parent 1553e1f28e
commit e668fe566c

View File

@ -30,59 +30,12 @@ namespace phpOMS\Utils\Converter;
*/
class Ip
{
/* public */ const IP_TABLE_PATH = __DIR__ . '/../../Localization/Default/Ip/ipGeoLocation.csv';
/* public */ const IP_TABLE_ITERATIONS = 100;
private function __construct()
{
}
public static function ip2Country(string $ip) : string
{
$fh = fopen(self::IP_TABLE_PATH, 'r');
fseek($fh, 0, SEEK_END);
$end = ftell($fh);
fseek($fh, 0);
$start = 0;
$current = $start;
$ip = self::ip2Float($ip);
$country = '';
$counter = 0;
while ($counter < self::IP_TABLE_ITERATIONS) {
$line = fgets($fh, 150);
if ($current !== 0) {
$line = fgets($fh, 150);
}
$split = explode(',', $line);
if ($ip >= $split[0] && $ip <= $split[1]) {
$country = $split[2];
break;
}
if ($ip > $split[1]) {
$larger = true;
$start = $current;
fseek($fh, (int) (($end - $current) / 2), SEEK_CUR);
} else {
$larger = false;
$end = $current;
fseek($fh, (int) (($start - $current) / 2), SEEK_CUR);
}
$counter++;
$current = ftell($fh);
}
fclose($fh);
return $country;
}
public static function ip2Float(string $ip) : float
{
$split = explode('.', $ip);