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.
Se define como coincidencia:
- El usuario intenta obtener el código 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". Si es así, permitir obtener el códgo. Guardar resultado en la tabla del código de registro.
2. Comprobar localización aproximada de la IP y guardarlo en base de datos. Guardarlo en la tabla del código de registro.
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.