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;
}
?>
Đã 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;
}
?>