PDA

View Full Version : Auto chặn load web khi blood OR bảo trì server With file Antiddos



ghvn1991
12-05-09, 12:00 AM
Code Antiddos này của anh NyNan và mình bổ sung thêm chức năng tự động chặn truy cập nếu Server không hoạt động và chống lag khi có sự kiện blood diễn ra.

Đã Test và hoạt động ok 100%. Khi Server ngừng hoạt động hoặc đang có sự kiện Blood nó sẽ đưa ra thông báo :


Server đang bảo trì hoặc đang diễn ra sự kiện blood. Hẹn gặp bạn khi khác!


Khi server hoạt động hoặc hết blood nó sẽ cho truy cập tiếp.


Chú ý : Dùng Query sau để tạo bảng muweb_servers



CREATE TABLE [dbo].[MuWeb_server] (
[name] [nvarchar] (100) NULL ,
[experience] [varchar] (100) NULL ,
[drops] [varchar] (100) NULL ,
[gsport] [varchar] (100) NULL ,
[ip] [varchar] (100) NULL ,
[display_order] [varchar] (100) NULL ,
[version] [varchar] (100) NULL ,
[type] [varchar] (50) NULL
) ON [PRIMARY]

Trong MuWeb_servers cần khai báo những gì :

Server-1 | 250x | 40% | 55901 | 127.0.0.1 | Season 4 | PVP


Những cái tôi tô đậm là rất quan trọng vì căn cứ vào đó code mới có thể check đc Server này đang hoạt động hay không. Và tôi lấy server thứ nhất để check (display_order='1').




<title>MU HOÀNG TỘC SEASON 4 - Sự trở lại của anh hùng</title>
<html>
<head>
<meta <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>"Content-Type" content="text/html; charset=utf-8">
<?php
require("config.php");
$query = "SELECT Name,experience,drops,gsport,ip,version,type,displ ay_order from muweb_servers where display_order='1'";
$result = $db->Execute($query);
$row = $result->fetchrow();
//------ Phần thông tin cần chỉnh sá»a-By Nylan-Mu NhaTrang ---------------
$level = 2; //Mức độ bảo vệ: 1: bảo vệ bình thường; 2: bảo vệ cao
// Nếu bạn chọn $level = 2 thì hãy điền tên miền của bạn ở phần sau:
$yoursite = "muht.myftp.org"; //Nháºp tên miền của website bạn - KHÃ"NG cần <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
$time = date('H:i');
$time1 = date('H:30');
$time2 = date('H:31');
$time3 = date('H:32');
$time4 = date('H:33');
$time5 = date('H:34');
$time6 = date('H:35');
$time7 = date('H:36');
$time8 = date('H:37');
$time9 = date('H:38');
$time10 = date('H:39');
$time11 = date('H:40');
$time12 = date('H:41');
$time13 = date('H:42');
$time14 = date('H:43');
$time15 = date('H:44');
$time16 = date('H:45');
/* Ok, giờ bạn có hai chọn lựa:
- Điều chỉnh báºt/tắt chống ddos trá»±c tiếp trên file nà y (1)
- Điều chỉnh báºt/tắt chống ddos ở má»™t file trên má»™t host khác (2)
*/
$scheme = 1; //Điền một trong hai số: 1: Chọn cách điều chỉnh thứ (1) 2: Chọn cách điều chỉnh thứ (2)
// Nếu bạn lựa chọn giải pháp (1) thì hãy edit phần nà y:
$antidos = 1; //Nháºp 1 để báºt, 0 để tắt chống ddos
// Nếu bạn lựa chọn giải pháp (2) thì hãy edit phần nà y:
$determiner = "muht.myftp.org/determiner.txt"; //Link tá»›i file quy định báºt/tắt chống ddos - Nếu bạn muốn báºt chống ddos chỉ việc nháºp và o ná»™i dung file nà y số "1"
//Có thể chỉnh sá»a phần sau hoặc để nguyên váºy cÅ©ng được
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
{
$redirect = "<center><br><font color='red' size='5'><B>MU HOÀNG TỘC - Sá»° TRỞ LẠI CỦA ANH HÙNG<b></font><br><font color='red' size='4'><B>Từ giờ các bạn truy cáºp web bằng địa chỉ MUHT.MYFTP.ORG<b></font><br>Xin vui lòng click <a href='".$_SERVER['REQUEST_URI']."'>[ Và o đây ]</a> để và o trang chủ<br><center></b></font><br></center>";
}
else {
$redirect = "<center><br><font color='red' size='5'><B>MU HOÀNG TỘC - SỰ TRỞ LẠI CỦA ANH HÙNG<b></font><br><font color='red' size='4'><B> Server đang tiến hà nh bảo trì. Hẹn gặp lại bạn khi khác!<br><center></b></font><br></center>";
}
// -------------- Hết phần thông tin cần chỉnh sá»a - Không chỉnh sá»a phần dÆ°á»›i!!! ------------
//##########################################
// ### Okie, chúng ta và o việc nà o (-_-) ###
//##########################################
//Ok, định nghĩa mà cái function đã
function url_exists($url) {
$a_url = parse_url($url);
if (!isset($a_url['port'])) $a_url['port'] = 80;
$errno = 0;
$errstr = '';
$timeout = 30;
if(isset($a_url['host']) && $a_url['host']!=gethostbyname($a_url['host'])){
$fid = fsockopen($a_url['host'], $a_url['port'], $errno, $errstr, $timeout);
if (!$fid) return false;
$page = isset($a_url['path']) ?$a_url['path']:'';
$page .= isset($a_url['query'])?'?'.$a_url['query']:'';
fputs($fid, 'HEAD '.$page.' <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>'."\r\n".'Host: '.$a_url['host']."\r\n\r\n");
$head = fread($fid, 4096);
fclose($fid);
return preg_match('#^<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>*\s+[200|302]+\s#i', $head);
} else {
return false;
}
}

function on_off($file) {
$string = file_get_contents($file);
$fetch = strstr($string,"1");
if ($fetch) {
return true;
}
else {
return false;
}
}
function level_1() {
global $antidos, $redirect;
if($antidos){
if(!$_SERVER['<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>']) {
echo $redirect;
exit;
}
}
}
function level_2() {
global $antidos, $redirect, $yoursite;
if($antidos){
if(strpos($_SERVER['<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>'], '<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>'.$yoursite) !== 0) {
if(strpos($_SERVER['<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>'], '<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>'.$yoursite) !== 0) {
echo $redirect;
exit;
}
}
}
}
// Done function definition ^_^
if($scheme == 1) {
if($level == 1) level_1();
elseif($level == 2) level_2();
else { echo "Bạn phải chọn \$level = 1 hoặc \$level = 2"; exit; }
}
elseif($scheme == 2) {
if (!url_exists($determiner)) $antidos = 1;
else { $antidos = on_off($determiner); }
if($level == 1) level_1();
elseif($level == 2) level_2();
else { echo "Bạn phải chọn \$level = 1 hoặc \$level = 2"; exit; }
}
else {
echo "B?n phải chọn \$scheme = 1 hoặc \$scheme = 2";
exit;
}
?>

Mr.Noob
12-05-09, 01:16 AM
Khá lắm.Chú cứ phát triển web giúp clbgames nhé.thanks

Nhiều ý tưởng hay lắm đó :)

adamvn
12-05-09, 01:34 AM
Cái này mình phải chạy thêm query gì vậy bạn.Mình chạy nó báo lỗi
"Fatal error: Call to a member function fetchrow() on a non-object in "C:\AppServ\<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> on line 9"

Mr.Noob
12-05-09, 01:39 AM
SELECT Name,experience,drops,gsport,ip,version,type,displ ay_order from muweb_servers

-----------------------------------

Tạo những colum mà bạn thiếu.

adamvn
12-05-09, 01:44 AM
Cụ thể tạo cái đó bạn bảo mình được không.Không biết tạo chỗ nào nữa.Vào sql rồi không biết làm tiếp thế nào nữa

Nylan
12-05-09, 11:45 PM
Nylan chứ hem phải NyNan..hi hi...Nice code....cố gắn phát huy nhá em...thank phát...

ghvn1991
13-05-09, 09:01 AM
À à, nhầm. HIHI.........................