mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-05-23 09:58:41 +00:00
Remove Ip localization
This commit is contained in:
parent
1553e1f28e
commit
e668fe566c
|
|
@ -30,59 +30,12 @@ namespace phpOMS\Utils\Converter;
|
||||||
*/
|
*/
|
||||||
class Ip
|
class Ip
|
||||||
{
|
{
|
||||||
/* public */ const IP_TABLE_PATH = __DIR__ . '/../../Localization/Default/Ip/ipGeoLocation.csv';
|
|
||||||
/* public */ const IP_TABLE_ITERATIONS = 100;
|
/* public */ const IP_TABLE_ITERATIONS = 100;
|
||||||
|
|
||||||
private function __construct()
|
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
|
public static function ip2Float(string $ip) : float
|
||||||
{
|
{
|
||||||
$split = explode('.', $ip);
|
$split = explode('.', $ip);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user