Simplified IPHelper (#712)

This commit is contained in:
Roman Kelesidis 2023-05-23 22:23:00 +07:00 committed by GitHub
commit d9d38935b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 17 additions and 90 deletions

View file

@ -259,7 +259,7 @@ if ($log_rowset) {
'USER_ID' => $row['log_user_id'],
'USERNAME' => profile_url($row),
'USER_HREF_S' => url_arg($url, $user_key, $row['log_user_id']),
'USER_IP' => \TorrentPier\Helpers\IPHelper::isValid($row['log_user_ip']) ? \TorrentPier\Helpers\IPHelper::decodeIP($row['log_user_ip']) : '127.0.0.1',
'USER_IP' => \TorrentPier\Helpers\IPHelper::isValid($row['log_user_ip']) ? \TorrentPier\Helpers\IPHelper::long2ip($row['log_user_ip']) : '127.0.0.1',
'FORUM_ID' => $row['log_forum_id'],
'FORUM_HREF' => BB_ROOT . FORUM_URL . $row['log_forum_id'],

View file

@ -35,7 +35,7 @@ if (isset($_POST['submit'])) {
foreach ($ip_list_temp as $ip) {
if (\TorrentPier\Helpers\IPHelper::isValid($ip)) {
$ip_list[] = \TorrentPier\Helpers\IPHelper::encodeIP($ip);
$ip_list[] = \TorrentPier\Helpers\IPHelper::ip2long($ip);
}
}
}
@ -215,7 +215,7 @@ if (isset($_POST['submit'])) {
$ban_id = $banlist[$i]['ban_id'];
if (!empty($banlist[$i]['ban_ip'])) {
$ban_ip = str_replace('255', '*', \TorrentPier\Helpers\IPHelper::decodeIP($banlist[$i]['ban_ip']));
$ban_ip = str_replace('255', '*', \TorrentPier\Helpers\IPHelper::long2ip($banlist[$i]['ban_ip']));
$select_iplist .= '<option value="' . $ban_id . '">' . $ban_ip . '</option>';
$ipban_count++;
} elseif (!empty($banlist[$i]['ban_email'])) {

View file

@ -300,7 +300,7 @@ if (!isset($_REQUEST['dosearch'])) {
$users = [];
if (\TorrentPier\Helpers\IPHelper::isValid($ip_address)) {
$ip = \TorrentPier\Helpers\IPHelper::encodeIP($ip_address);
$ip = \TorrentPier\Helpers\IPHelper::ip2long($ip_address);
$users[] = $ip;
} else {
bb_die($lang['SEARCH_INVALID_IP']);

View file

@ -148,7 +148,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') {
for ($i = 0, $iMax = count($onlinerow_reg); $i < $iMax; $i++) {
$users_count++;
$row_class = 'row1';
$reg_ip = \TorrentPier\Helpers\IPHelper::decodeIP($onlinerow_reg[$i]['session_ip']);
$reg_ip = \TorrentPier\Helpers\IPHelper::long2ip($onlinerow_reg[$i]['session_ip']);
$template->assign_block_vars('reg_user_row', array(
'ROW_CLASS' => $row_class,
@ -168,7 +168,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') {
for ($i = 0, $iMax = count($onlinerow_guest); $i < $iMax; $i++) {
$guest_users++;
$row_class = 'row2';
$guest_ip = \TorrentPier\Helpers\IPHelper::decodeIP($onlinerow_guest[$i]['session_ip']);
$guest_ip = \TorrentPier\Helpers\IPHelper::long2ip($onlinerow_guest[$i]['session_ip']);
$template->assign_block_vars('guest_user_row', array(
'ROW_CLASS' => $row_class,

View file

@ -108,7 +108,7 @@ if (!\TorrentPier\Helpers\IPHelper::isValid($ip)) {
msg_die("Invalid IP: $ip");
}
// Convert IP to HEX format
$ip_sql = \TorrentPier\Helpers\IPHelper::encodeIP($ip);
$ip_sql = \TorrentPier\Helpers\IPHelper::ip2long($ip);
// Peer unique id
$peer_hash = md5(
@ -372,13 +372,13 @@ if (!$output) {
$peers = '';
foreach ($rowset as $peer) {
$peers .= pack('Nn', \TorrentPier\Helpers\IPHelper::encodeIP(\TorrentPier\Helpers\IPHelper::decodeIP($peer['ip'])), $peer['port']);
$peers .= pack('Nn', \TorrentPier\Helpers\IPHelper::ip2long(\TorrentPier\Helpers\IPHelper::long2ip($peer['ip'])), $peer['port']);
}
} else {
$peers = [];
foreach ($rowset as $peer) {
$peers[] = ['ip' => \TorrentPier\Helpers\IPHelper::decodeIP($peer['ip']), 'port' => (int)$peer['port']];
$peers[] = ['ip' => \TorrentPier\Helpers\IPHelper::long2ip($peer['ip']), 'port' => (int)$peer['port']];
}
}

View file

@ -351,7 +351,7 @@ function sys($param)
if (!defined('IN_TRACKER')) {
require_once INC_DIR . '/init_bb.php';
} else {
define('DUMMY_PEER', pack('Nn', \TorrentPier\Helpers\IPHelper::encodeIP($_SERVER['REMOTE_ADDR']), !empty($_GET['port']) ? (int)$_GET['port'] : random_int(1000, 65000)));
define('DUMMY_PEER', pack('Nn', \TorrentPier\Helpers\IPHelper::ip2long($_SERVER['REMOTE_ADDR']), !empty($_GET['port']) ? (int)$_GET['port'] : random_int(1000, 65000)));
function dummy_exit($interval = 1800)
{

View file

@ -112,8 +112,8 @@ switch ($mode) {
} elseif ($profiledata['user_level'] == MOD && IS_MOD) {
$reg_ip = $last_ip = $lang['HIDDEN'];
} else {
$user_reg_ip = \TorrentPier\Helpers\IPHelper::decodeIP($profiledata['user_reg_ip']);
$user_last_ip = \TorrentPier\Helpers\IPHelper::decodeIP($profiledata['user_last_ip']);
$user_reg_ip = \TorrentPier\Helpers\IPHelper::long2ip($profiledata['user_reg_ip']);
$user_last_ip = \TorrentPier\Helpers\IPHelper::long2ip($profiledata['user_last_ip']);
$reg_ip = '<a href="' . $bb_cfg['whois_info'] . $user_reg_ip . '" class="gen" target="_blank">' . $user_reg_ip . '</a>';
$last_ip = '<a href="' . $bb_cfg['whois_info'] . $user_last_ip . '" class="gen" target="_blank">' . $user_last_ip . '</a>';
}

View file

@ -577,7 +577,7 @@ function bt_show_ip($ip, $port = '')
global $bb_cfg;
if (IS_AM) {
$ip = \TorrentPier\Helpers\IPHelper::decodeIP($ip);
$ip = \TorrentPier\Helpers\IPHelper::long2ip($ip);
$ip .= ($port) ? ":$port" : '';
return $ip;
}

View file

@ -20,7 +20,7 @@ $user = null;
// Obtain and encode user IP
$client_ip = filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1';
$user_ip = \TorrentPier\Helpers\IPHelper::encodeIP($client_ip);
$user_ip = \TorrentPier\Helpers\IPHelper::ip2long($client_ip);
define('CLIENT_IP', $client_ip);
define('USER_IP', $user_ip);

View file

@ -589,7 +589,7 @@ switch ($mode) {
bb_die($lang['NO_SUCH_POST']);
}
if (!$ip_this_post = \TorrentPier\Helpers\IPHelper::decodeIP($post_row['poster_ip'])) {
if (!$ip_this_post = \TorrentPier\Helpers\IPHelper::long2ip($post_row['poster_ip'])) {
$ip_this_post = $lang['NOT_AVAILABLE'];
}
@ -623,7 +623,7 @@ switch ($mode) {
continue;
}
if (!$ip = \TorrentPier\Helpers\IPHelper::decodeIP($row['poster_ip'])) {
if (!$ip = \TorrentPier\Helpers\IPHelper::long2ip($row['poster_ip'])) {
$ip = $lang['NOT_AVAILABLE'];
}
$ip = ($rdns_ip_num == $ip || $rdns_ip_num == 'all') ? gethostbyaddr($ip) : $ip;

View file

@ -17,81 +17,8 @@ use function strlen;
* Class IPHelper
* @package TorrentPier\Helpers
*/
class IPHelper
class IPHelper extends Ip
{
/**
* Decode original IP
*
* @param string $ip
*
* @return string
*/
public static function encodeIP(string $ip): string
{
return Ip::ip2long($ip);
}
/**
* Recovery of decoded IP
*
* @param string|int $ip
*
* @return string
*/
public static function decodeIP($ip): string
{
return Ip::long2ip((int)$ip);
}
/**
* Checking IP for validity
*
* @param string $ip
*
* @return bool
*/
public static function isValid(string $ip): bool
{
return Ip::isValid($ip);
}
/**
* Checking if it is a local IP
*
* @param string $ip
*
* @return bool
*/
public static function isLocal(string $ip): bool
{
return IP::isLocal($ip);
}
/**
* Checking if it is a remote IP
*
* @param string $ip
*
* @return bool
*/
public static function isRemote(string $ip): bool
{
return IP::isRemote($ip);
}
/**
* Compare IP
*
* @param string $ip
* @param string $range
*
* @return bool
*/
public static function compareIP(string $ip, string $range): bool
{
return Ip::compare($ip, $range);
}
/**
* Anonymize an IP/IPv6.
* Removes the last byte for v4 and the last 8 bytes for v6 IPs