Foros del Web » Programando para Internet » PHP »

Alguna forma de bloquear una ip a traves de PHP en IIS ?

Estas en el tema de Alguna forma de bloquear una ip a traves de PHP en IIS ? en el foro de PHP en Foros del Web. Ok quiero hacer un anti DDOS, porque los programitas estos no funcionan, mi propocito es coger la ip que aunque el atacante tenga proxy , ...
  #1 (permalink)  
Antiguo 01/11/2014, 14:24
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 5 meses
Puntos: 0
Alguna forma de bloquear una ip a traves de PHP en IIS ?

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
  1. <?php
  2. function getRealIP()
  3. {
  4.  
  5.    if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
  6.    {
  7.       $client_ip =
  8.          ( !empty($_SERVER['REMOTE_ADDR']) ) ?
  9.             $_SERVER['REMOTE_ADDR']
  10.             :
  11.             ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
  12.                $_ENV['REMOTE_ADDR']
  13.                :
  14.                "unknown" );
  15.  
  16.       // los proxys van añadiendo al final de esta cabecera
  17.       // las direcciones ip que van "ocultando". Para localizar la ip real
  18.       // del usuario se comienza a mirar por el principio hasta encontrar
  19.       // una dirección ip que no sea del rango privado. En caso de no
  20.       // encontrarse ninguna se toma como valor el REMOTE_ADDR
  21.  
  22.       $entries = preg_split('/[, ]/', $_SERVER['HTTP_X_FORWARDED_FOR']);
  23.  
  24.       reset($entries);
  25.       while (list(, $entry) = each($entries))
  26.       {
  27.          $entry = trim($entry);
  28.          if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
  29.          {
  30.             // http://www.faqs.org/rfcs/rfc1918.html
  31.             $private_ip = array(
  32.                   '/^0\./',
  33.                   '/^127\.0\.0\.1/',
  34.                   '/^192\.168\..*/',
  35.                   '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
  36.                   '/^10\..*/');
  37.  
  38.             $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
  39.  
  40.             if ($client_ip != $found_ip)
  41.             {
  42.                $client_ip = $found_ip;
  43.                break;
  44.             }
  45.          }
  46.       }
  47.    }
  48.    else
  49.    {
  50.       $client_ip =
  51.          ( !empty($_SERVER['REMOTE_ADDR']) ) ?
  52.             $_SERVER['REMOTE_ADDR']
  53.             :
  54.             ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
  55.                $_ENV['REMOTE_ADDR']
  56.                :
  57.                "unknown" );
  58.    }
  59.  
  60.    return $client_ip;
  61.  
  62.  
  63. }
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.     function get_real_ip()
  71.     {
  72.  
  73.         if (isset($_SERVER["HTTP_CLIENT_IP"]))
  74.         {
  75.             return $_SERVER["HTTP_CLIENT_IP"];
  76.         }
  77.         elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
  78.         {
  79.             return $_SERVER["HTTP_X_FORWARDED_FOR"];
  80.         }
  81.         elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
  82.         {
  83.             return $_SERVER["HTTP_X_FORWARDED"];
  84.         }
  85.         elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
  86.         {
  87.             return $_SERVER["HTTP_FORWARDED_FOR"];
  88.         }
  89.         elseif (isset($_SERVER["HTTP_FORWARDED"]))
  90.         {
  91.             return $_SERVER["HTTP_FORWARDED"];
  92.         }
  93.         else
  94.         {
  95.             return $_SERVER["REMOTE_ADDR"];
  96.         }
  97.  
  98.     }
  99.  
  100. function BaseFile(){
  101.  
  102. $BaseF = basename($_SERVER['PHP_SELF']);
  103. $Base_F=getcwd().'/'.$BaseF;
  104. $BaseFile=str_replace("\\","/",$Base_F);
  105.  
  106. return $BaseFile;
  107.  
  108.  
  109. }  
  110.  
  111.  
  112.  
  113. $ip = $_SERVER["REMOTE_ADDR"];
  114.  
  115.  
  116. ?>
  117.  
  118. <?php //Ejemplo aprenderaprogramar.com, archivo escribir.php
  119. $file = fopen("maybe.txt", "a");
  120. fwrite($file, "############ Nuevo Registro ############".PHP_EOL);
  121. fwrite($file, "IP 1 : ". getRealIP() . PHP_EOL);
  122. fwrite($file, "IP 2 : ". get_real_ip() . PHP_EOL);
  123. fwrite($file, "IP 3 : ". $ip . PHP_EOL);
  124. fwrite($file, "Archivo : ". BaseFile() .PHP_EOL);
  125. fwrite($file, "".PHP_EOL);
  126.  
  127. fclose($file);
  128. ?>

ese es lo que tengo

PD: No puede ser en htaccess, debo hacerlo a traves de web.config

Última edición por Zedd; 01/11/2014 a las 14:30
  #2 (permalink)  
Antiguo 01/11/2014, 14:45
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Alguna forma de bloquear una ip a traves de PHP en IIS ?

1 - Puedes configurar tu firewall.
2- Puedes poner en tu IIS Dynamic IP Restrictions
3 - Puedes utilizar Cloudflare.
4 - Puedes contratar un servidor en OVH o online donde te garantizan el Anti-Ddos
  #3 (permalink)  
Antiguo 01/11/2014, 20:14
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Alguna forma de bloquear una ip a traves de PHP en IIS ?

a traves de PHP como se hace ? ...

Etiquetas: alguna, bloquear, forma, html, iis, ip, registro, traves
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:17.