En la tabla de tokens de invitaciones debe haber también una columna que indique si esta validación de ip o cookie está activa para cada token (ipcookiecheck), por defecto a true. Si está activa y hay coincidencia, expirar el token y mostrar el mensaje:
ATENCIÓN!- Se ha detectado una autoinvitación o posible situación de cuentas múltiples. Ha expirado el código de invitación y no es posible registrarse.
Se define como coincidencia:
- El usuario intenta registrarse con la cookie que no se borra seteada
- El usuario accede con una IP de un usuario que ya está registrado o que ya ha obtenido algun código de registro. En este caso:
1. Hacer un rDNS sobre la IP para ver si en el nombre se incluye la palabra "nat". Independientemente del resultado, guardarlo en una columna en la base de datos de la tabla de usuario..
2. Comprobar localización aproximada de la IP y guardarlo en base de datos. Guardarlo en la tabla del usuario.
3. Intentar hacer un match de fingerprints. Si coincide, no permitir el registro.
Restricción: cada proceso externo de validación, poner un tiempo máximo de ejecución de 5 segundos. Si pasan y no ha respondido o hay cualquier error, se considerará que se ha pasado la validación.