elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:07  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Banear ip error PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Banear ip error PHP  (Leído 1,240 veces)
usuario oculto


Desconectado Desconectado

Mensajes: 450



Ver Perfil WWW
Banear ip error PHP
« en: 11 Septiembre 2011, 22:42 »

Código
<?php 
if (isset( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])) {  
$ip = $_SERVER [ 'HTTP_X_FORWARDED_FOR' ];  
   }  
   elseif (isset( $_SERVER [ 'HTTP_VIA' ])) {  
$ip = $_SERVER [ 'HTTP_VIA' ];  
   }  
   elseif (isset( $_SERVER [ 'REMOTE_ADDR' ])) {  
$ip = $_SERVER [ 'REMOTE_ADDR' ];  
   }  
   else {  
$ip = "Anonima" ;  
   }    
 
$baneados = file ( "baneados.txt" , "r+" );
$nbaneados = count ( $baneados );
function banear ( $ip , $baneados , $nbaneados ){
for ( $i = 0 ; $i < $nbaneados ; $i ++){
if ( $ip == $baneados [ $i ]){
echo "<br><br><br><br><center> Estas Baneadp de la Web y no Puedes Entrar<br> Envia Un Email al Webmaster para Hablar con el</center>" ;
die();
}
}
}
banear ( $ip , $baneados , $nbaneados );
?>


Warning: file() expects parameter 2 to be long, string given in /home/l0l.php on line 15


En línea

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)
madpitbull_99
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.898



Ver Perfil WWW
Re: Banear ip error PHP
« Respuesta #1 en: 11 Septiembre 2011, 23:05 »

Creo que es porque no hace falta poner el +r cuando usas file(), los modos de apertura (r+, w, a, etc) se usan con fopen(), con file() no hacen falta.

Por lo que te quedaría así:
$baneados = file ( "baneados.txt" );


En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
usuario oculto


Desconectado Desconectado

Mensajes: 450



Ver Perfil WWW
Re: Banear ip error PHP
« Respuesta #2 en: 12 Septiembre 2011, 00:09 »

Código
<?php 
if (isset( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])) {  
$ip = $_SERVER [ 'HTTP_X_FORWARDED_FOR' ];  
   }  
   elseif (isset( $_SERVER [ 'HTTP_VIA' ])) {  
$ip = $_SERVER [ 'HTTP_VIA' ];  
   }  
   elseif (isset( $_SERVER [ 'REMOTE_ADDR' ])) {  
$ip = $_SERVER [ 'REMOTE_ADDR' ];  
   }  
   else {  
$ip = "Anonima" ;  
   }    
 
$baneados = file ( "baneados.txt" );
$nbaneados = count ( $baneados );
function banear ( $ip , $baneados , $nbaneados ){
for ( $i = 0 ; $i < $nbaneados ; $i ++){
if ( $ip == $baneados [ $i ]){
echo "<br><br><br><br><center> Estas Baneadp de la Web y no Puedes Entrar<br> Envia Un Email al Webmaster
 
para Hablar con el</center>"
;
die();
}
}
}
banear ( $ip , $baneados , $nbaneados );
?>

ahora no me tira error, pero no funciona :s  en baneados.txt, tengo ips en lista, la mia incluida  (no sta la primera) y no me sale el mensaje, necesito ayuda porfavor xD enserio, :(, necesito saber como hacerlo
En línea

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)
madpitbull_99
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.898



Ver Perfil WWW
Re: Banear ip error PHP
« Respuesta #3 en: 12 Septiembre 2011, 00:33 »

La mitad del código te lo puedes ahorrar, reduciéndolo a esto:

Código
<?php 
 
//$ip = $_SERVER [ 'REMOTE_ADDR' ];
$ip = '127.0.0.1';
(in_array ($ip, file('baneados.txt')) ) ? die('Baneado') : die('Usuario tiene acceso');
 
?>

El problema está en que, al desarrollar en un entorno local (en tu propio PC) la variable IP no toma el valor que debería, en mi caso en el archivo baneados.txt tengo la ip 127.0.0.1.

Pruebalo desde un hosting y pero usando REMOTE_ADDR, para mostrarte que funciona he hardcodeado la variable $ip.
En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
drvy | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


Ver Perfil WWW
Re: Banear ip error PHP
« Respuesta #4 en: 12 Septiembre 2011, 01:59 »

No uses HTTP_X_FORWARDED_FOR, es una "variable" que se puede cambiar desde el header y no sirve de nada.
La unica que necesitas realmente es REMOTE_ADDR


Saludos
En línea
usuario oculto


Desconectado Desconectado

Mensajes: 450



Ver Perfil WWW
Re: Banear ip error PHP
« Respuesta #5 en: 12 Septiembre 2011, 02:16 »

el primer code que puse funciona (culpa de hosting) , pero ahora un problema, solo funciona con la primera ip de la lista, sabeis como modificarlo y ponerlo bien please?

ya lo he arreglado con otro source
« Última modificación: 12 Septiembre 2011, 13:28 por usuario oculto » En línea

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)
El As del Club Paris


Desconectado Desconectado

Mensajes: 1.818


Ver Perfil WWW
Re: Banear ip error PHP
« Respuesta #6 en: 13 Septiembre 2011, 16:15 »

En vez de archivos, mejor usa Bases de datos, es ams rapido y seguro.

Saludos
En línea

sudo suck --mycock -o force
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Banear ip
Dudas Generales
krusty 7 1,113 Último mensaje 12 Marzo 2004, 14:30
por Alnitak
banear un numero
Dispositivos Móviles (PDA's, Smartphones)
sikik 2 9,571 Último mensaje 12 Enero 2005, 18:14
por phreackgsm
como banear ip de mi web
Desarrollo Web
furtivo 1 1,220 Último mensaje 20 Febrero 2006, 04:56
por SeniorX
Banear del foro SMF
Dudas Generales
scorpio21 3 1,857 Último mensaje 27 Junio 2011, 15:59
por тαптяαпсє
No puedo banear ip
Seguridad
mariotreco 1 531 Último mensaje 9 Diciembre 2011, 17:36
por adastra
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines