Pregunta

Me estoy quedando Drupal 7 sitio web con un juego de cartas multijugador de Rusia y tienen que bloquear algunos jugadores muy molestos cada 4-5 días.

Antes de Drupal que estaba usando phpBB 3. Cuando estas personas vendría de una pequeña ciudad / pueblo que acababa de añadir a su red IP a las reglas del cortafuegos, de modo que no pueden volver a registrarse 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 dirección IP usada por un identificador de usuario. Es decir. el abusador se me informó por otros usuarios y sé que su UID, pero no puede encontrar su dirección IP en los registros, ya que:

  1. He permitido syslog-registro y ver los mensajes de Drupal en / var / log / messagess pero rara vez hay un mensaje de un usuario que entra, probablemente porque las sesiones son largas por defecto, y me gustaría para mantener de esta manera para la comodidad del usuario.

  2. He también permitió a la "tala de base de datos", pero no saben dónde ver (lo que la tabla de base de datos).

¿Fue útil?

Solución

Si usted tiene estadísticas de módulo activado, la mesa "accesslog" contiene las direcciones IP de todos sus visitantes.

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

Si usted no tiene habilitadas las estadísticas, yo le aconsejo que lo deja fuera, incluso para este resultado, ya que le permite, provoca un rendimiento pena severa.

En ese caso, puede utilizar la tabla sessions:

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

El beneficio de la primera sobre la segunda, es que el primero siempre te mostrará el último nombre de host, mientras que el segundo puede ser que no sea siempre al día.

Otros consejos

Por lo que yo sé, Drupal no informa de la IP utilizada por los usuarios en su perfil de usuario. Se puede crear un módulo personalizado, comprobar la IP utilizada por el usuario, y grabarlo en su propia tabla de base de datos; entonces se podría mostrar en el perfil de usuario, a los usuarios que tiene los permisos adecuados (por ejemplo, para los usuarios con permiso para Administrar usuarios).

La función que necesita es direccion_ip (), que se puede utilizar en su aplicación de hook_user_login () . La implementación hook_user_view () , a continuación, puede mostrar dicha información a los usuarios con los permisos adecuados.

Si está utilizando el módulo de registro de base de datos, Drupal almacena esta información en la tabla de vigilancia, en la columna hostname. Puede consultas personalizadas de escritura para llegar a esta información, o utilizar el Vistas Módulo Watchdog (actualmente sólo un desarrollador suelte 7.x, así que no estoy seguro de lo bien que funciona en Drupal 7) para exponer esa mesa de Vistas.

Dos módulos recientes pueden ayudar con esto:

usuario IP de registro, que tiene la integración Vistas y IP Address Manager , que no tiene la integración Vistas sino que está destinado a integrarse con manifiesto, Cueva Sus Trolls, y todos los que prohíben Misery-- módulos relacionados.

session_id () le da corriente usuario de la sesión-id si él / ella es un cliente o un miembro.

$result = db_query("SELECT hostname FROM sessions WHERE sid = '".session_id()."'");
$data = db_fetch_object($result );
echo $data->hostname;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top