Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2006, 12:44
Bocaz
 
Fecha de Ingreso: octubre-2005
Mensajes: 95
Antigüedad: 18 años, 5 meses
Puntos: 1
Aporte: Permitir solo 1 instancia de usuario

Bueno. Mis saludos a la gente del foro que tantas veces me han ayudado.
Se me ha ocurrido una idea para permitir solo una instancia de usuario en un sistema web. Obviamente tiene una falencia, pero para las personas que desarrollamos sistemas de gestión que solo se usen en LAN no hay problemas y funciona perfectamente.
La idea:

La idea es sobre la estructura básica de una tabla de usuarios: usu_cod, usu_nom, usu_pass, generar otro campo con la finalidad de almacenar temporalmente una dirección ip.
El enfoque consiste en guardar siempre la ip en el momento de validar la autentificación con la finalidad de ir comparándolo en cada página del sistema.

En otras palabras, al intentar autentificar a un usuario se compara el nombre de usuario y la contraseña en la base de datos. Si ambos coinciden entonces se procede a hacer un update del campo de la ip de esta forma:
Código PHP:
<?php
mysql_query
("update usuarios set usu_ip='".$_SERVER['REMOTE_ADDR']."'",$conexion)
?>
De ésta forma quedará guardada la última ip con que fué logeado el usuario.
Al ir pasando de página en página del sistema, se debe comparar nuevamente la ip del momento usando la misma funcion $_SERVER['REMOTE_ADDR'] con la ip que tenemos guardada en el campo usu_ip correpondiente al usuario de la sesion. Si esta coincide damos acceso y seguimos cargando la página, si no simplemente cerramos la sesion y nos volvemos a la página de inicio.

La forma que se genera la unica instancia es parecida a lo que sucede con el msn, cuando estamos conectados y alguien se conecta desde otro lugar con nuestro usuario y contraseña, se desconecta.

Si un usuario del sistema se logea con el mismo noombre de usuario y contraseña en otro equipo, dejará guardada en la tabla su ip, y cuando nosotros tratemos de avanzar o tretroceder una página no podremos hacerlo por que nuestra ip no coincidirá con la que tenemos guardada. En este caso podemos avisar al usuario que seguramente alguien se ha logeado desde otro pc con su usuario y contraseña.

INCONVENIENTES: Esto solo funciona con usuarios que se conecten a un sistema remoto y que tengan coexión directa a internet y no mediante un router o proxy, ya que si 2 usuarios de una red que ocupa proxy tendran la misma ip, y podrá haber más de una instancia.

Asi que de momento esta idea solo funciona para sistemas que se implementen bajo la estructura de una LAN.

Si alguien puede adaptar la idea para hacerla funcionar a pesar del problema de los routers y los proxys, porfavor haga comentarios....

espero que la idea les ayude y les sirva...a mi me ha servido...

Muchas gracias...