Ok quiero hacer un anti DDOS, porque los programitas estos no funcionan, mi propocito es coger la ip que aunque el atacante tenga proxy , ya lo hice, guardar la ip en un blog lo hice, solo me falta contar las veces que ataca en menos de 3 segundo y si superan las 10 o 5 , pues que lo guarde en el log y bloquee la ip, alguien tiene alguna idea ?
Código PHP:
Ver original<?php
function getRealIP()
{
if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
// los proxys van añadiendo al final de esta cabecera
// las direcciones ip que van "ocultando". Para localizar la ip real
// del usuario se comienza a mirar por el principio hasta encontrar
// una dirección ip que no sea del rango privado. En caso de no
// encontrarse ninguna se toma como valor el REMOTE_ADDR
$entries = preg_split('/[, ]/', $_SERVER['HTTP_X_FORWARDED_FOR']);
{
if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) ) {
// http://www.faqs.org/rfcs/rfc1918.html
'/^0\./',
'/^127\.0\.0\.1/',
'/^192\.168\..*/',
'/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
'/^10\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
if ($client_ip != $found_ip)
{
$client_ip = $found_ip;
break;
}
}
}
}
else
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
}
return $client_ip;
}
function get_real_ip()
{
if (isset($_SERVER["HTTP_CLIENT_IP"])) {
return $_SERVER["HTTP_CLIENT_IP"];
}
elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
return $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif (isset($_SERVER["HTTP_X_FORWARDED"])) {
return $_SERVER["HTTP_X_FORWARDED"];
}
elseif (isset($_SERVER["HTTP_FORWARDED_FOR"])) {
return $_SERVER["HTTP_FORWARDED_FOR"];
}
elseif (isset($_SERVER["HTTP_FORWARDED"])) {
return $_SERVER["HTTP_FORWARDED"];
}
else
{
return $_SERVER["REMOTE_ADDR"];
}
}
function BaseFile(){
$BaseF = basename($_SERVER['PHP_SELF']);
return $BaseFile;
}
$ip = $_SERVER["REMOTE_ADDR"];
?>
<?php //Ejemplo aprenderaprogramar.com, archivo escribir.php
$file = fopen("maybe.txt", "a"); fwrite($file, "############ Nuevo Registro ############".PHP_EOL
); fwrite($file, "IP 1 : ". getRealIP
() . PHP_EOL
); fwrite($file, "IP 2 : ". get_real_ip
() . PHP_EOL
); fwrite($file, "IP 3 : ". $ip . PHP_EOL
); fwrite($file, "Archivo : ". BaseFile
() .PHP_EOL
);
?>
ese es lo que tengo
PD: No puede ser en htaccess, debo hacerlo a traves de web.config