it-swarm-es.com

¿Encontrar la dirección IP del usuario dado su UID?

Estoy ejecutando Drupal 7 sitio web con un juego de cartas multijugador ruso y tengo que bloquear a algunos jugadores muy molestos cada 4-5 días.

Antes Drupal Estaba usando phpBB 3. Cuando estas personas vendrían de una pequeña ciudad/pueblo, simplemente agregaría su red IP a las reglas del firewall, para que no puedan volver a regístrese con una nueva dirección de correo. Esto funcionó bien en mi caso y mi pregunta no es sobre esta política.

Mi problema es que con Drupal, no puedo encontrar la última dirección IP utilizada por una identificación de usuario. Es decir. Otros usuarios me informan sobre el abusador y conozco su UID, pero no puedo encontrar su dirección IP en los registros porque:

  1. He habilitado el registro de syslog y veo los mensajes Drupal en/var/log/messagess pero rara vez hay un mensaje sobre el inicio de sesión de un usuario, probablemente porque las sesiones son largas por defecto, y yo Me gustaría mantenerlo así para la comodidad del usuario.

  2. También he habilitado el "registro de base de datos", pero no sé dónde verlo (qué tabla de base de datos).

8
Alexander Farber

Si tiene habilitado el módulo de estadísticas, la tabla "registro de acceso" contiene las direcciones IP de todos sus visitantes.

SELECT hostname FROM accesslog WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

Si no tiene estadísticas habilitadas, le aconsejo que lo deje, incluso para este resultado, porque habilitarlo causa una severa penalización de rendimiento.

En ese caso, puede usar la tabla sessions:

SELECT hostname FROM sessions WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

El beneficio del primero sobre el último es que el primero siempre le mostrará el último nombre de host, mientras que el último puede no estar siempre actualizado.

9
berkes

Hasta donde yo sé, Drupal no informa la IP utilizada por los usuarios en su perfil de usuario. Puede crear un módulo personalizado, verificar la IP utilizada por el usuario y registrarla en su tabla de base de datos propia; luego, podría mostrarla en el perfil de usuario, a los usuarios que tienen el permiso correcto (por ejemplo, a los usuarios con el permiso para administrar usuarios).

La función que necesita es ip_address () , que puede usar en su implementación de hook_user_login () . Implementando hook_user_view () , luego puede mostrar dicha información a los usuarios con el permiso correcto.

5
kiamlaluno

Si está utilizando el módulo de registro de la base de datos, Drupal almacena esta información en la tabla de vigilancia, bajo la columna hostname. Puede escribir consultas personalizadas para obtener esta información, o use el módulo de Watchdog de Vistas (actualmente solo una versión de desarrollo para 7.x, así que no estoy seguro de qué tan bien funciona en Drupal 7) para exponer esa tabla a Vistas.

3
jhedstrom

Dos módulos recientes pueden ayudar con esto:

Registro de IP del usuario , que tiene integración de Vistas, y Administrador de direcciones IP , que no tiene integración de Vistas pero está destinado a integrarse con Manifiesto, Excavar sus trolls y Miseria-- todos los módulos relacionados con la prohibición.

1
Patrick Kenny