Avatar Image
Usuario Novato
Usuario Novato

Hola, sufro constantes visitas de usuarios molestos. Para erradicar este problema existe la posibilidad de banear un rango de IP's determinado??

Gracias de antemano.

Avatar Image
Moderador
Moderador

Hasta el momento solo es posible banear usuarios. Lo de banear IP no está contemplado.

maxxote_21
Usuario Novato
Usuario Novato

claro que se puede yo mismo cree un sistema de baneo de usuarios con php y my sql  el cual conta  de cuatro archivos pero no es de mucha utilidad ya que la mayoria de usuarios utilizan ip dinamicas esto solo es efectivo a aquellos que utilizan una ip fija pero pedes utilizar tu base de datos para realizarlo

1- creas una tabla

CREATE TABLE IF NOT EXISTS `baneadas` (
  `id` int(11) NOT NULL auto_increment,
  `ip` char(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

2  -creas una pagina en donde administras las ip baneadas admin.php

<?php
$bd_host = "tu hosting sql";     //modificas la coneccion a tu base de datos//
$bd_usuario = "tu usuario sql";
$bd_password = "tu clave sql";
$bd_base = "tu base de datos sql";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

<html>
<head>
<title>admin</title>
</head>
<body>
<?php

$ipname=$_POST['ipname'];

echo "<table style=\"width:100%;font-size:12;font-family:tahoma\" border=1 cellspacing=0 cellpadding=0><tbody>";
$query=mysql_query("SELECT * FROM baneadas");
while ($r=mysql_fetch_row($query)) {
echo "<tr><td width=\"50%\">$r[1]</td>
<td><a href=\"eliminar.php?id=".$r[0]."\">[Borrar]</a></td>
</tr>";
}
?>

<form action='administrar.php?banned=insertar' method= 'POST'>
Ip a banear: <input type='text' name='ipname'>'<br>
<input type='submit' value='Prohibir su entrada!'>
</form>

<?php   

if(isset($_GET['banned']) == 'insertar')

{

if(empty($ipname)) {
echo "<center><p class='error'>ERROR!!</p>";
die ("
<p class='error2'>deve rellenar todos los campos! </p>
<a href='./administrar.php'> <input class='exito2'  value='..::Volver a Intentar::..' /></a></center>");
}
mysql_query("INSERT INTO baneadas VALUES ('','$ipname')");
echo "Ip baneada:<b> $ipname</b>";
exit ('<span>se ha baneado con exito!</span>');
}

?>
</body>
</html>

3 creamos una nueva pagina y la llamamos eliminar.php

<?php

$bd_host = "tu hosting sql";     //modificas la coneccion a tu base de datos//
$bd_usuario = "tu usuario sql";
$bd_password = "tu clave sql";
$bd_base = "tu base de datos sql";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);


@mysql_query("DELETE FROM baneadas WHERE id='".$_GET["id"]."'",$con);

if(mysql_affected_rows($con)==1){
  header("Location:./administrar.php");
}
else{
   echo "No se pudo eliminar. Ocurrió un error...";
}

?>

4 - creamos una pagina ala cual redireciconaremos al usuario si es que su ip se encuentra baneada y la llamamos   error.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>error</title>
</head>

<body>
se ha denegado el acceso por favor avandone el sitio
</body>
</html>

5-  aqui prohibimos la entrada a un usuario baneado a nuestra pagina colocando lo siguiente

<?php

$con = mysql_connect('tu host sql, 'tu usuario sql',' tu clave sql '); // modifica estas bariables
mysql_select_db('tu base de datos sql ', $con);

    $estado = mysql_query("SELECT * FROM baneadas",$con);
    while($row=mysql_fetch_row($estado)){

// comparamos si  las ip que estan el la base de datos es igual ala  ip $_SERVER['REMOTE_ADDR'] ip del visitante

if ( $row[1] == $_SERVER['REMOTE_ADDR'] ){

header ('location: ./error.php'); } //si  se cumple esta sentencia y la ip visitante se encuentra en la base de datos lo redireccionamos automaticamente ala pagina de error denegando el acceso

}

// si la ip del visitante no se encuentra en la base de datos lo liberamos y mostramos la pagina

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>pagina</title>
</head>

<body>
aki tu pagina
</body>
</html>

si tienes conocimiento de sql y php veras que no es tan dificil utiliza la opcion $_SERVER['REMOTE_ADDR'] para verificar si el usuario que esta visitando tu web se encuentra baneado , 

ESPERO LE SEA DE UTILIDAD si hay algun error por favos avisa soy nuevo en php y es mi primer script emal  [email protected]

maxxote_21
Usuario Novato
Usuario Novato

claro que se puede yo mismo cree un sistema de baneo de usuarios con php y my sql  el cual conta  de cuatro archivos pero no es de mucha utilidad ya que la mayoria de usuarios utilizan ip dinamicas esto solo es efectivo a aquellos que utilizan una ip fija pero pedes utilizar tu base de datos para realizarlo

1- creas una tabla

CREATE TABLE IF NOT EXISTS `baneadas` (
  `id` int(11) NOT NULL auto_increment,
  `ip` char(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

2  -creas una pagina en donde administras las ip baneadas admin.php

<?php
$bd_host = "tu hosting sql";     //modificas la coneccion a tu base de datos//
$bd_usuario = "tu usuario sql";
$bd_password = "tu clave sql";
$bd_base = "tu base de datos sql";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

<html>
<head>
<title>admin</title>
</head>
<body>
<?php

$ipname=$_POST['ipname'];

echo "<table style=\"width:100%;font-size:12;font-family:tahoma\" border=1 cellspacing=0 cellpadding=0><tbody>";
$query=mysql_query("SELECT * FROM baneadas");
while ($r=mysql_fetch_row($query)) {
echo "<tr><td width=\"50%\">$r[1]</td>
<td><a href=\"eliminar.php?id=".$r[0]."\">[Borrar]</a></td>
</tr>";
}
?>

<form action='administrar.php?banned=insertar' method= 'POST'>
Ip a banear: <input type='text' name='ipname'>'<br>
<input type='submit' value='Prohibir su entrada!'>
</form>

<?php   

if(isset($_GET['banned']) == 'insertar')

{

if(empty($ipname)) {
echo "<center><p class='error'>ERROR!!</p>";
die ("
<p class='error2'>deve rellenar todos los campos! </p>
<a href='./administrar.php'> <input class='exito2'  value='..::Volver a Intentar::..' /></a></center>");
}
mysql_query("INSERT INTO baneadas VALUES ('','$ipname')");
echo "Ip baneada:<b> $ipname</b>";
exit ('<span>se ha baneado con exito!</span>');
}

?>
</body>
</html>

3 creamos una nueva pagina y la llamamos eliminar.php

<?php

$bd_host = "tu hosting sql";     //modificas la coneccion a tu base de datos//
$bd_usuario = "tu usuario sql";
$bd_password = "tu clave sql";
$bd_base = "tu base de datos sql";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);


@mysql_query("DELETE FROM baneadas WHERE id='".$_GET["id"]."'",$con);

if(mysql_affected_rows($con)==1){
  header("Location:./administrar.php");
}
else{
   echo "No se pudo eliminar. Ocurrió un error...";
}

?>

4 - creamos una pagina ala cual redireciconaremos al usuario si es que su ip se encuentra baneada y la llamamos   error.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>error</title>
</head>

<body>
se ha denegado el acceso por favor avandone el sitio
</body>
</html>

5-  aqui prohibimos la entrada a un usuario baneado a nuestra pagina colocando lo siguiente

<?php

$con = mysql_connect('tu host sql, 'tu usuario sql',' tu clave sql '); // modifica estas bariables
mysql_select_db('tu base de datos sql ', $con);

    $estado = mysql_query("SELECT * FROM baneadas",$con);
    while($row=mysql_fetch_row($estado)){

// comparamos si  las ip que estan el la base de datos es igual ala  ip $_SERVER['REMOTE_ADDR'] ip del visitante

if ( $row[1] == $_SERVER['REMOTE_ADDR'] ){

header ('location: ./error.php'); } //si  se cumple esta sentencia y la ip visitante se encuentra en la base de datos lo redireccionamos automaticamente ala pagina de error denegando el acceso

}

// si la ip del visitante no se encuentra en la base de datos lo liberamos y mostramos la pagina

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>pagina</title>
</head>

<body>
aki tu pagina
</body>
</html>

si tienes conocimiento de sql y php veras que no es tan dificil utiliza la opcion $_SERVER['REMOTE_ADDR'] para verificar si el usuario que esta visitando tu web se encuentra baneado , 

ESPERO LE SEA DE UTILIDAD si hay algun error por favos avisa soy nuevo en php y es mi primer script emal  [email protected]

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 20/Jun/2008, 04:08
Webmaster_BLQ demoniodehiel whadhay42kJul/08
Por: , el 29/Ago/2005, 22:25
u2twilight MariaDolors T.Mac BEN-HUR42kAug/05
Por: , el 04/May/2003, 01:12
Bel-Koradrys La_Rasta Adhar Troncof Silver_3.14805Aug/04
Por: , el 04/Nov/2004, 12:51
barbie_stigmata FORZALAZIO151787Nov/04
Por: User 4367750, el 30/Sep/2007, 15:09
User 4367750 demoniodehiel12kSep/07