如何限制訪客的ip(PHPBB的程式碼)_PHP教程
如何限制訪客的ip(PHPBB的程式碼)
代碼:
/**************************************************** ******** **********************
* admin_user_ban.php
* --------- ------- ---
* 開始:2001 年7 月31 日星期二
* 版權所有:(C) 2001 phpBB Group
* 電子郵件:[email]support@phpbb.com [/email]
*
* $Id: admin_user_ban.php,v 1.21.2.2 2002/05/12 15:57:45 psotfx Exp $
*
*
*
*** ********* ***************************************** ***************** ***************/
/**************************************************** ******** **********************
* 此檔案是phpBB2 移植到Nuke 6.0 的一部份(c) 版權所有2002
* 作者:Tom Nitzschner ([email]tom@toms-home.com[/email])
* [url]http://bbtonuke.sourceforge.net[/url] (或[url]http ://www.toms-home .com)[/url]
*
* 一如既往,在搞亂任何東西之前先進行備份。我發布的所有程式碼
*僅被視為範例程式碼。它可能完全
*功能,但您使用它需要您自擔風險,如果您破壞它,
*您也可以修復它。不提供或暗示任何保證。
*
* 請先在 [url]http://bbtonuke.sourceforge.net[/url] 上發布有關此連接埠的所有問題/請求,
* 然後在我的地點。所有原始標題代碼和版權訊息將保留
*,以在應得的信用處給予信用。如果您修改此內容,唯一的要求是
*您也保留所有原始版權訊息。我的所有作品均在 GNU 通用公共許可證下發布
*。請參閱自述文件以獲取更多資訊。
*
**************************************** *** ****************************************/
/**************************************************** ******** **********************
*
* 程式是免費軟體;您可以根據
*自由軟體基金會發布的GNU通用公共授權條款重新分發和/或修改
*它;許可證版本2,或
*(由您選擇)任何更高版本。
*
************************ ******************* *************************************** ***/
定義('IN_PHPBB' , 1);
if ( !empty($setmodules) )
{
$filename = basename(__FILE__);
$module['Users'][' Ban_Management'] = $filename;
return;
}
//
//載入預設標頭
//
$phpbb_path_path = './root./' ;
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
//
// 啟動程式
//
// 啟動程式
//
if ( isset($HTTP_POST_VARS['submit']) )
{
$user_bansql = '';
$email_bansql = '';
$ip_bansql = '';
$user_list = array();
if ( !empty($HTTP_POST_VARS['用戶名']) )
{
$this_userdata = get_userdata($HTTP_POST_VARS['用戶名') ]);
if( !$this_userdata )
{
message_die(GENERAL_MESSAGE, $lang['No_user_id_specified']);
}
$ip_list = array();
if ( isset($HTTP_POST_VARS['ban_ip']) )
{
$ip_listtemp_explode( ',', $HTTP_POST_VARS['ban_ip']);
for($i = 0; $i
if ( preg_match( ' /^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1 , 3})[ ]*-[ ]*([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})。 ([0-9]{1,3})$/', trim($ip_list_temp[$i]), $ip_range_explode) )
{
//
// 不問所有這個,別問了...!為什麼
//
$ip_1_counter = $ip_range_explode[1];
$ip_1_end = $ip_range_explode[5];
while ( $ ip_1_counter $ip_2_counter = ( $ip_1_counter == $ip_range_explode[1] ) ? $ip_range_explode[2] : 0;
$ip_2_end = ( $ip_1_counter if ( $ip_2_counter == 0 && $ip_2_end == 254 )
{
$ip_2_counter = 255;
$ip_2_fragment = 2555;}
while ( $ip_2_counter {
$ip_3_counter = (ip_2_count; $ip_1_counter == $ip_range_explode[1] ) ? $ip_range_explode[3] : 0;
$ip_3_end = ( $ip_2_counter $ip_1_counter
if ( $ip_3_counter == 0 && $ip_3_end == 254 )
{
$ip_3_counter = 255;
$ip_3_fragment = 2555; encode_ip("$ip_1_counter.$ip_2_counter.255.255");
}
while ( $ip_3_counter {
$. 3] && $ip_2_counter == $ip_range_explode[2] && $ip_1_counter == $ip_range_explode[1] ) ? $ip_range_explode[4] : 0;
$ip_4_end = ( $ip_3_counter
if ( $ip_4_counter == 0 && $ip_4_end == 254 )
{
$ip_4_counter = 254 )
{
$ip_4_counter = 2555; 255;
$ip_list[] =encode_ip("$ip_1_counter.$ip_2_counter.$ip_3_counter.255");
}
while ( $ip_4_counter {
$ip_list[] =encode_ip("$ip_1_counter.$ip_2_counter.$ip_3_counter.$ipcount_counter.$ip4_counter");
}
$ip_3_counter ;
}
$ip_2_counter ;
}
$ip_1_counter ;
}<_>{
$ip = gethostbynamel(trim($ip_list_temp[$i]) ) ;
for($j = 0; $j {
if ( !empty($ip[$j]) )
{
$ip_list[] =encode_ip($ip[$j]);
}
}
}
else if ( preg_match('/^([0-9]{ 1, 3}).([0-9*]{1,3}).([0-9*]{1,3}).([0-9*]{1,3})$/' , 剪刀($ip_list_temp[$i])) )
{
$ip_list[] = 編碼_ip(str_replace('*', '255', 修剪($ip_list_temp[$i])));
}
}
}
$email_list = array();
if ( isset($HTTP_POST_VARS['ban_email']) )
{
$e_list_tempmail']) )
{
$e_list_tempmail'] (',', $HTTP_POST_VARS['ban_email']);
for($i = 0; $i {
//{
//
// 此ereg 匹配基於[email]php@unreelpro.com[/email]
// 包含在php.com 帶註釋的php 手冊(ereg
// 部分)
//
if ( eregi('^(([[:alnum:]*] ([-_.][[:alnum:]*] )*.?)|(*))@([[ :alnum:]] ([-_]?[[:alnum:]] )*.){1,3}([[:alnum:]]{2,6})$', 修剪($email_list_temp[$ i])) )
{
$email_list[] = trim($email_list_temp[$i]);
}
}
}
$sql = "SELECT *
來自」。 BANLIST_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "無法取得黑名單資訊", "", __LINE__, __FILE__ , $ sql);
}
$current_banlist = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
$kill_session_freeresult($result);
$kill_session_sql ='' ;
for($i = 0; $i
$in_banlist = false;
for($j = 0; $j {
if ( $user_list[$i] == $current_banlist[$j]['ban_userid'] )
{
$ in_banlist = true;
}
}
if (!$in_banlist)
{
$kill_session_sql .= (( $kill_session_sql != '' ) ? ' 或' : ' ')。 user_list[$i];
$sql = "插入"。 !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "無法將ban_userid 信息插入數據庫", "", __LINE__, __FILE__, $sql);
}
}
}
for($i = 0; $i {
$in_banlist = false;
for($j = 0; $j {
if ( $ip_list[$i] == $current_banlist[$j]['ban_ip'] )
{
$in_banlist = true ;
}
}
if ( !$in_banlist )
{
if ( preg_match('/(ff.)|(.ff)/is' , chunk_split($ ip_list[$i], 2, '.')) )
{
$kill_ip_sql = "session_ip LIKE '" . str_replace('.', '', preg_replace('/(ff.)|(.ff)/is', '%', chunk_split($ip_list[$i], 2, "."))) 。 ";
}
else
{
$kill_ip_sql = "session_ip = '" . $ip_list[$i] 。 🎜>$sql = "插入" 。 sql) )
{
message_die( GENERAL_ERROR, "無法將ban_ip 資訊插入資料庫", "", __LINE__, __FILE__, $sql);
}
}
}
}
}
}
}
}
}
//
//現在我們報表會話表中刪除所有被禁止的邊界
//剛剛輸入隊列表的用戶或IP資訊...這將強制會話
//初始化導致即時現場
//
if ( $kill_session_sql != '' )
{
$sql = "DELETE FROM " .會話表。 !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "無法從資料庫中刪除禁止的會話", "" , __LINE__, __FILE__, $sql);
}
}
}
for($i = 0; $i
$in_banlist = false;
for($j = 0; $ j {
if ( $email_list[$i] == $current_banlist[$j ]['ban_email'] )
{
$in_banlist = true;
}
}
if ( !$in_banlist )
{
$sql = "插入「.禁止名單表。 " .str_replace("'", "''", $email_list[$i]) . "')";
if (!$db->sql_query($ sql) )
{
message_die (GENERAL_ERROR, "無法將ban_email 資訊插入資料庫", "", __LINE__, __FILE__, $sql);
}
}
}
$where_ '';if ( isset($HTTP_POST_VARS['unban_user']) )
{
$user_list = $HTTP_POST_VARS['unban_user'];
for($i = 0; $i {
if ( $user_list[$i] != -1 )
{
$where_sql .= (($where_sql!= '') ? ', ': '' $user_list[$i];
}
}
}
if ( isset($HTTP_POST_VARS['unban_ip']) )
{
$ip_list = $TP_$ ['unban_ip'];
for($i = 0; $i {
if ( $ip_list[$i] != - 1 )
{$where_sql .= (( $where_sql != '' ) ? ', ' : '' ) 。
if ( isset($HTTP_POST_VARS['unban_email']) )
{
$email_list = $HTTP_POST_VARS['unban_email'];
; $i {
if ( $email_list[$i] != -1 )
{
$where_sql .= ( ( $where_sql != '')?' ,':'')。 = "從" 刪除。 "無法從資料庫中刪除禁制令資訊", "", __LINE__, __FILE__, $sql);
}
}
$message = $lang['Ban_update_sucessful'] 。 >
'' 。
'' 。 /a>');
message_die(GENERAL_MESSAGE, $message);
}
else
{
$template->set_names(array'
);
$template->assign_vars(array(
'L_BAN_TITLE' => $lang['Ban_control'],
'L_BAN_EXPLAIN' = > $lang['Ban_explain'],
'L_BAN_EXPLAIN_WARN' => $lang['Ban_explain_warn'],
'L_IP_OR_HOSTNAME' = $lang_EMA['],
'L_IP_OR_HOSTNAME' = $RDR]['] ' => $lang['電子郵件地址'],
'L_SUBMIT' => $lang['提交'],
'L_RESET' => $lang['重置'],
'S_BANLIST_ACTION' =>append_sid("admin_user_ban.$phpEx"))
);
$template->assign_vars(array(
'L_BAN_US_o_> $name'[]]]]]> $SSonfffffnname'_> $SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'SAN_USS> $name'Y]]]]'Sjname'sname'Somefffan’Spaname'SweAN_USSname'_> $name'Y]]]]> $name' ],
'L_BAN_USER_EXPLAIN' => $lang['Ban_username_explain'],
'L_BAN_IP' => $lang['Ban_IP'],
'L_BAN_IP_EXPLAIN' => $lang_Ban_d]
'L_BAN_EMAIL' => $lang['Ban_email'],
'L_BAN_EMAIL_EXPLAIN' => $lang['Ban_email_explain'])
);
$userban_count = 0; >$ipban_count = 0;
$emailban_count = 0;
$sql = "SELECT b.ban_id, u.user_id, u.username
FROM " 。禁止名單表。 「b」。用戶表。 “ u
其中 u.user_id = b.ban_userid
AND b.ban_userid 0
AND u.user_id ” 。匿名的 。 "
ORDER BY u.user_id ASC";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, '無法選擇當前user_id 禁止列表', '', __LINE__, __FILE__, $sql);
}
$user_list = $db->sql_fetchrowset($result);
$db->sql_freeresult( $result);
$select_userlist = '';
for($i = 0; $i {
$select_userlist .= '' . $user_list[$i]['用戶名'] 。'';
$userban_count ;
}
if( $select_userlist == '' )
{
$select_userlist = '' 。 ';
}
$select_userlist = '

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
