J'exécute le site Web de Drupal 7 avec un jeu de cartes multijoueur russe et je dois bloquer certains joueurs très ennuyeux tous les 4-5 jours.
Avant Drupal, j'utilisais phpBB 3. Quand ces personnes venaient d'une petite ville / village, je venais d'ajouter leur réseau IP aux règles du pare-feu, afin qu'elles ne puissent pas se réinscrire avec une nouvelle adresse e-mail. Cela a bien fonctionné dans mon cas et ma question ne concerne pas cette politique.
Mon problème est qu'avec Drupal, je ne trouve pas la dernière adresse IP utilisée par un ID utilisateur. C'est-à-dire que l'abuseur m'a été signalé par d'autres utilisateurs et je connais son uid, mais je ne trouve pas son adresse IP dans les journaux, car:
J'ai activé la journalisation syslog et voir les messages Drupal dans / var / log / messagess mais il y a rarement un message à propos de la connexion d'un utilisateur, probablement parce que les sessions sont longues par défaut, et j'aimerais que cela reste ainsi confort d'utilisation.
J'ai également activé la «journalisation de la base de données», mais je ne sais pas où la voir (quelle table de base de données).
Pour autant que je sache, Drupal ne signale pas l'IP utilisée par les utilisateurs dans leur profil d'utilisateur. Vous pouvez créer un module personnalisé, vérifier l'IP utilisée par l'utilisateur et l'enregistrer dans votre propre table de base de données; vous pouvez ensuite l'afficher dans le profil utilisateur, aux utilisateurs disposant de l'autorisation appropriée (par exemple, aux utilisateurs autorisés à administrer les utilisateurs).
La fonction dont vous avez besoin est ip_address () , que vous pouvez utiliser dans votre implémentation de hook_user_login () . En implémentant hook_user_view () , vous pouvez ensuite afficher ces informations aux utilisateurs avec la bonne autorisation.
la source
Si vous utilisez le module de journalisation de la base de données, Drupal stocke ces informations dans la table de surveillance, sous la
hostname
colonne. Vous pouvez soit écrire des requêtes personnalisées pour obtenir ces informations, soit utiliser le module Views Watchdog (actuellement uniquement une version de développement pour 7.x, donc je ne suis pas sûr de savoir comment cela fonctionne dans Drupal 7) pour exposer ce tableau aux vues.la source
Deux modules récents peuvent vous y aider:
User IP Log , qui a l'intégration de Views, et IP Address Manager , qui n'a pas d'intégration de Views mais est destiné à s'intégrer à Manifest, Cave Your Trolls et Misery - tous les modules liés à l'interdiction.
la source
session_id () vous donne l'identifiant de session de l'utilisateur actuel, qu'il soit invité ou membre.
la source