From d9d38935b65ae38bd4372dc5bb3dbe5d3219c59d Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 23 May 2023 22:23:00 +0700 Subject: [PATCH] Simplified IPHelper (#712) --- admin/admin_log.php | 2 +- admin/admin_user_ban.php | 4 +- admin/admin_user_search.php | 2 +- admin/index.php | 4 +- bt/announce.php | 6 +-- common.php | 2 +- library/ajax/mod_action.php | 4 +- library/includes/functions.php | 2 +- library/includes/init_bb.php | 2 +- modcp.php | 4 +- src/Helpers/IPHelper.php | 75 +--------------------------------- 11 files changed, 17 insertions(+), 90 deletions(-) diff --git a/admin/admin_log.php b/admin/admin_log.php index 508a34bb4..d34c65b7b 100644 --- a/admin/admin_log.php +++ b/admin/admin_log.php @@ -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'], diff --git a/admin/admin_user_ban.php b/admin/admin_user_ban.php index 119ebeb5d..fea55186e 100644 --- a/admin/admin_user_ban.php +++ b/admin/admin_user_ban.php @@ -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 .= ''; $ipban_count++; } elseif (!empty($banlist[$i]['ban_email'])) { diff --git a/admin/admin_user_search.php b/admin/admin_user_search.php index ab68f2835..b378fef1d 100644 --- a/admin/admin_user_search.php +++ b/admin/admin_user_search.php @@ -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']); diff --git a/admin/index.php b/admin/index.php index 360ea39e4..8f3db41e8 100644 --- a/admin/index.php +++ b/admin/index.php @@ -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, diff --git a/bt/announce.php b/bt/announce.php index af12ac322..12752e6f0 100644 --- a/bt/announce.php +++ b/bt/announce.php @@ -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']]; } } diff --git a/common.php b/common.php index 2b8d4d708..744b9828f 100644 --- a/common.php +++ b/common.php @@ -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) { diff --git a/library/ajax/mod_action.php b/library/ajax/mod_action.php index 9648e5a67..4551cdc0e 100644 --- a/library/ajax/mod_action.php +++ b/library/ajax/mod_action.php @@ -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 = '' . $user_reg_ip . ''; $last_ip = '' . $user_last_ip . ''; } diff --git a/library/includes/functions.php b/library/includes/functions.php index f29acd4d3..faebf0415 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -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; } diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index eb00cfa86..0942911c8 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -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); diff --git a/modcp.php b/modcp.php index e51b8cc7c..0993ff444 100644 --- a/modcp.php +++ b/modcp.php @@ -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; diff --git a/src/Helpers/IPHelper.php b/src/Helpers/IPHelper.php index cfaa7bc10..fb0793ac0 100644 --- a/src/Helpers/IPHelper.php +++ b/src/Helpers/IPHelper.php @@ -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