Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/09/2013, 19:48
Avatar de utan
utan
 
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: Nodejs banned list

Hola,

pero si vas a usar

Código PHP:
module.exports={
    
isBanned:function(ip callback ){
        var 
fs=require('fs');
        var 
fileName='./views/bannedList.txt';
        
fs.exists(fileName,function(exists){
            if(
exists){
                
fs.stat(fileName,function(err,stats){
                    if(
err)throw err;
                    
fs.open(fileName,'r',function(err,fd){
                        var 
buffer=new Buffer(stats.size);
                        
fs.read(fd,buffer,0,buffer.length,null,function(err,bytesRead,buffer){
                            
bannedips=buffer.toString('utf8',0,buffer.length);
                            
bannedips=bannedips.split('|||');
                            for(var 
a=0;a<bannedips.length;a++){
                                
console.log(ip);
                                
console.log(bannedips[a]);
                                if(
bannedips[a]==ip)
                                
callback(true); // estas en una funcion anonima no puedes usar return porque estas asiendo una funcion asycronica.
                            
}
                           
callback(false);
                        });
                    });
                });
            }else{
                
console.log('Banned file don\'t exists. Exit program!');
                
process.exit(code=0);
            }
        });
 
       
callback(true);
    }

Digamos que vas a testear un ip, entonce
Código PHP:
isBanned(192.168.1.1 , function(res){
   
// tienes un retorno en el callback
   /**
     *sigue o no con otras funciones o pruebas importantes aquí
     */
   
if(res === true){
   }
}) 
Ya que tu function que prueba si el ip esta baneado es importante , todo deberia hacerse dentro de la function anónima.
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com