Foros del Web » Programando para Internet » PHP »

Urgente!!!! bloquear IP

Estas en el tema de Urgente!!!! bloquear IP en el foro de PHP en Foros del Web. Necesito saber el codigo para bloquear el acceso de una ip a un sitio...
  #1 (permalink)  
Antiguo 11/09/2003, 17:44
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago de Chile
Mensajes: 350
Antigüedad: 21 años, 11 meses
Puntos: 0
Urgente!!!! bloquear IP

Necesito saber el codigo para bloquear el acceso de una ip a un sitio
__________________
Animacion de cumpleaños

Última edición por Cluster; 11/09/2003 a las 20:07
  #2 (permalink)  
Antiguo 11/09/2003, 17:49
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
bueno amigo, te voy a dar algo mas que quizas te ayude a comprobar si funciona bien el script, ademas de saber aque hora te atakan y de donde son, y de donde vienen...

solo sirve si tienes mysql ya que la vamos a usar... atento al temita, que no es poco...

te doy dos formas de bajarlo, lo puedes copiar o lo puedes descargar de esta direccion: pulsa aqui...

---------------------------------------------------------------------------------
·················· FICHERO: attack.sql
DROP TABLE IF EXISTS `attack`;
CREATE TABLE `attack` (
`id` bigint(255) NOT NULL auto_increment,
`ip` varchar(15) NOT NULL default '000.000.000.000',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`navegador` varchar(255) NOT NULL default '',
`referer` varchar(255) NOT NULL default '',
`idioma` varchar(10) NOT NULL default '',
`valida` varchar(5) NOT NULL default '',
KEY `id` (`id`)
) TYPE=MyISAM;
·················· FICHERO: attack.sql

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

·················· FICHERO: install.php
Código PHP:
<?php
require("aut_config.inc.php");

echo <<< HTML
<html>
 <head>
 <title>Attack Install: Sencillo script para bloquear la entra a IP'S no deseadas</title>
 </head>
 <body bgcolor="#ffffff" link="#0000FF" alink="#0000FF" vlink="#0000FF">
 <center><h1>ATENCION: Instalacion de la Base de Datos</h1><hr>
 <font face="Verdana" size="2" color="Maroon">Se va a realizar la instalacion de la Base de Datos y sus Tablas.<br>
 <font color="Navy">Compruebe que sus datos son correctos antes de pulsar:<br><br>
 Nombre del Servidor: <font color="Maroon">$sql_host<br></font>
 Nick Usuario Mysql: <font color="Maroon">$sql_usuario<br></font>
 Password Usuario Mysql: <font color="Maroon">$sql_pass<br></font>
 Nombre de la Base de Datos: <font color="Maroon">$sql_db<br></font>

 <br><br>Si los datos son correctos: pulsa <a href="install.php?accion=install">aqui</a><br><br>Si no son correctos configura el fichero <font color="Maroon">aut.config.inc.php</font></center><br><br>
HTML;

if (
$accion=="install") {
mysql_connect("$sql_host""$sql_usuario""$sql_pass") or die ("Error en la conexion Mysql >>> Configura bien el archivo aut.config.inc.php");
mysql_select_db("$sql_db") or die ("Error en la conexion Mysql >>> Configura bien el archivo aut.config.inc.php");

mysql_query("DROP TABLE IF EXISTS attack");
mysql_query("
CREATE TABLE attack (
  `id` bigint(255) NOT NULL auto_increment,
  `ip` varchar(15) NOT NULL default '000.000.000.000',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `navegador` varchar(255) NOT NULL default '',
  `referer` varchar(255) NOT NULL default '',
  `idioma` varchar(10) NOT NULL default '',
  `valida` varchar(5) NOT NULL default '',
  KEY `id` (`id`)
) TYPE=MyISAM
"
) or die ("ERROR : tabla no creada");
echo 
"<b>attack tabla creada</b>...<br>";
echo 
"<br>Ha sido creada la tabla..No se han encontrado errores<br><br><b><font color=#FF0000>Porfavor, borre ahora el fichero install.php de su servidor !!!</font></b>";
}
echo <<< HTML
</body></html>
HTML;
?>
·················· FICHERO: install.php

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

·················· FICHERO: aut_attack.inc.php
Código PHP:
<?php
header
("Expires: Mon, 26 Jul 2002 05:00:00 GMT");
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
require (
'aut_config.inc.php');

$date date("Y-m-d H:i:s");
$sysnavegador $_SERVER[HTTP_USER_AGENT];
$referer $_SERVER[HTTP_REFERER];
$idioma $_SERVER[HTTP_ACCEPT_LANGUAGE];

$i=0// pone el contador del array automatico a 0...
while ($string[$i]) // sacamos las ips del array...
{

if (
getenv("HTTP_X_FORWARDED_FOR")) {
     
$ip_usr   getenv("HTTP_X_FORWARDED_FOR"); // pillamos la ip de la 1º manera... rollo de navegadores...
   
} else {
     
$ip_usr   getenv("REMOTE_ADDR"); // 2º si pilla la ip de esta manera es porq la 1º no le ha gustado....jajaja, por eso esta esta otra...
}
if(
$ip_usr == $string[$i]){ // Comparamos la ip...
$valida "NO";
mysql_query("INSERT INTO $sql_tabla values('','$ip_usr','$date','$sysnavegador','$referer','$idioma','$valida')") or die($Err01);
mysql_close();
echo 
"<center>Tu ip no es buena...eres un...."// si quieres decirle algo... pero no dara tiempo... sera expulsado...
echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"$url_mala\";</SCRIPT>"// aqui mandas a tu amigo al infierno....
exit;
}
    
$i++; // no borres esto....
}
$valida "SI";
mysql_query("INSERT INTO $sql_tabla values('','$ip_usr','$date','$sysnavegador','$referer','$idioma','$valida')") or die($Err01);
mysql_close();
echo 
"<center>Ok, tu ip es valida<br>los datos han sido almacenados correctamente"// esta linea la quitas y na... dejas que el script siga su curso...
echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"$url_buena\";</SCRIPT>"// AQUI LA IP ES BUENA, REDIRECCIONA A TU PAGINA PRINCIPAL
?>
·················· FICHERO: aut_attack.inc.php

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

·················· FICHERO: aut_view.inc.php
Código PHP:
<?php
require ('aut_config.inc.php');

echo <<< HTML
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    </head>
    <body bgcolor="#ffffff">
        <div align="center">
            <table width="844" border="0" bgcolor="GhostWhite" cellspacing="0" cellpadding="0">
                <tr bgcolor="DarkBlue">
                    <td colspan="7" height="5"></td>
                </tr>
                <tr>
                    <td align="center" width="50"><font face="Verdana" size="2">ID</td>
                    <td align="center" width="100"><font face="Verdana" size="2">IP</td>
                    <td align="center" width="150"><font face="Verdana" size="2">DATE</td>
                    <td align="center" width="300"><font face="Verdana" size="2">NAVEGADOR</td>
                    <td align="center" width="150"><font face="Verdana" size="2">REFERER</td>
                    <td align="center" width="48"><font face="Verdana" size="2">IDIOMA</td>
                    <td align="center" width="28"><font face="Verdana" size="2">OK</td>
                </tr>
                <tr bgcolor="DarkBlue">
                    <td colspan="7" height="2"></td>
                </tr>
    </body>
HTML;

$usuario_consulta mysql_query("SELECT $selecttbl FROM $sql_tabla ORDER BY id DESC") or die("$Err01");
while(
$resultados mysql_fetch_array($usuario_consulta)) {

echo <<< HTML
                 <tr>
                    <td align="center" width="50"><font face="Verdana" size="1">$resultados
[id]</td>
                    <td align="center" width="100"><font face="Verdana" size="1">$resultados
[ip]</td>
                    <td align="center" width="150"><font face="Verdana" size="1">$resultados
[date]</td>
                    <td align="center" width="300"><font face="Verdana" size="1">$resultados
[navegador]</td>
                    <td align="center" width="150"><font face="Verdana" size="1">$resultados
[referer]</td>
                    <td align="center" width="48"><font face="Verdana" size="1">$resultados
[idioma]</td>
                    <td align="center" width="28"><font face="Verdana" size="1">$resultados
[valida]</td>
                </tr>
HTML;
}
mysql_free_result($usuario_consulta);
mysql_close();
echo <<< HTML
                <tr bgcolor="DarkRed">
                    <td colspan="7" height="2"></td>
                </tr>
                <td align="center" colspan="7"><font face="Verdana" size="1"><b><a href="$pag?accion=borrar">BORRAR TODOS LOS REGISTROS</td>
                </tr>
                <tr bgcolor="DarkRed">
                    <td colspan="7" height="5"></td>
                </tr>
            </table>
        </div>
</html>
HTML;
if (
$_GET['accion']=="borrar"){
require (
'aut_config.inc.php');
mysql_query("DELETE FROM $sql_tabla") or die(mysql_error());
mysql_close();
echo 
"<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"aut_view.inc.php\";</SCRIPT>"//Aqui llamamos a este mismo fichero.
}
?>
·················· FICHERO: aut_view.inc.php

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

·················· FICHERO: aut_config.inc.php
Código PHP:
<?php
/*CARGAMOS CONFIGURACION DEL SERVIDOR*/
$sql_host "localhost"// Host, nombre del servidor o IP del servidor Mysql.
$sql_usuario "xxxx"// Usuario de Mysql
$sql_pass "xxxx"// contraseña de Mysql

/*CARGAMOS LA BASE DE DATOS*/
$sql_db "attack"// Base de datos que se usará el post, haz esta base de datos en tu servidor y luego ejecuta el install.php

/*CARGAMOS LAS TABLAS DE LA BASE DE DATOS*/
$sql_tabla "attack"//Nombre de la tabla que contendrá los datos de los usuarios

/*CONECTAMOS CON MYSQL*/
$db_connect mysql_connect($sql_host,$sql_usuario,$sql_pass);
mysql_select_db($sql_db);

/*CARGAMOS TODOS LOS REGISTROS DE LAS BASES DE DATOS*/
$selecttbl "id,ip,date,navegador,referer,idioma,valida"//Campos de Registro Administradores BD

/*CARGAMOS MODULO DE ERRORES*/
$Err01 "No se pudo realizar la consulta a la Base de datos"//ERROR MYSQL DE CONEXION: COMPRUEBA SI LOS DATOS DE CONEXION CON TU MYSQL SON CORRECTOS...?

/*CARGAMOS LAS IPS QUE NO QUEREMOS QUE ENTREN EN NUESTRA WEB*/
$string=array ("191.100.100.101","191.200.200.201","191.180.180.181"); //Aqui pones las ips que no quieras...jejeje, sigue el mismo metodo...

/*CARGAMOS LAS DIRECCIONES DE LA PAGINA BUENA Y LA MALA*/
$url_buena "http://www.yahoo.com"// A esta web iran los usuarios buenos
$url_mala "http://www.microsoft.com"// A esta direccion iran los usuarios malos

?>
·················· FICHERO: aut_config.inc.php
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 11/09/2003, 17:53
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años, 7 meses
Puntos: 1
pues no se si hay alguna funcion del sistema, pero puedes
hacerte una tu mismo, controlando la ip que llega con
getenv("HTTP_CLIENT_IP"); o $_SERVER['REMOTE_ADDR']
y compararla con tu bdd en la que tengas ips prohibidas

un saludo
  #4 (permalink)  
Antiguo 11/09/2003, 18:21
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago de Chile
Mensajes: 350
Antigüedad: 21 años, 11 meses
Puntos: 0
Gracias a los dos pero lo que hice fue editar el .htaccess
__________________
Animacion de cumpleaños
  #5 (permalink)  
Antiguo 11/09/2003, 18:57
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
xxxxxxxxxdddddd, es verdad..... jajajaj, ok... perdona... tu solo quieres bannear a la gente, no quieres saber ni cuando entran ni las veces que lo intentan ni nada. solo expulsar...ok
__________________
3w.valenciadjs.com
3w.laislatv.com
  #6 (permalink)  
Antiguo 11/09/2003, 20:23
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 21 años, 4 meses
Puntos: 2
Dios mioo!!! hasta donde llegaremos
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #7 (permalink)  
Antiguo 11/09/2003, 20:49
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
Cita:
Mensaje Original por Gerald
Dios mioo!!! hasta donde llegaremos

????????????
__________________
3w.valenciadjs.com
3w.laislatv.com
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 12:10.