Show client country in seeders / leechers list 🌍 (#1478)

* Show client country in seeders / leechers list

* Update functions.php

* Update functions.php

* Update functions.php

* Updated

* Update displaying_torrent.php

* Update functions.php

* Update viewtopic_torrent.tpl

* Update viewtopic_torrent.tpl

* Update functions.php

* Update functions.php

* Update functions.php

* Update functions.php

* Update config.php

* Updated

* Updated

* Updated

* Updated

* Update update_geolite_db.php

* Update update_geolite_db.php

* Updated

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Updated

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Update update_geolite_db.php

* Updated

* Update viewtopic_torrent.tpl

* Updated

* Update composer.lock

* Update defines.php

* Updated

* Update init_bb.php

* Update CHANGELOG.md
This commit is contained in:
Roman Kelesidis 2024-05-08 22:13:30 +07:00 committed by GitHub
commit 459fba6b86
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 475 additions and 89 deletions

View file

@ -2165,3 +2165,30 @@ function readUpdaterFile(): array|bool
return false;
}
/**
* Show country ISO Code by user IP address
*
* @param string $ipAddress
* @param int $port
* @return mixed|string|null
*/
function countryByIP(string $ipAddress, int $port = 1111): mixed
{
global $lang;
if (!$data = CACHE('bb_ip2countries')->get($ipAddress . '_' . $port)) {
$cityDbReader = new \GeoIp2\Database\Reader(INT_DATA_DIR . '/GeoLite2-City.mmdb');
try {
$record = $cityDbReader->city($ipAddress);
$data = $record->country->isoCode;
} catch (\GeoIp2\Exception\AddressNotFoundException $e) {
$data = $lang['UNKNOWN'];
} catch (\MaxMind\Db\Reader\InvalidDatabaseException $e) {
bb_die($e->getMessage());
}
CACHE('bb_ip2countries')->set($ipAddress . '_' . $port, $data, 1200);
}
return $data;
}