Prowadzę stronę internetową Drupal 7 z rosyjską grą wieloosobową i co 4-5 dni muszę blokować bardzo irytujących graczy.
Przed Drupalem korzystałem z phpBB 3. Gdy osoby te będą pochodzić z małego miasta / wioski, po prostu dodam ich sieć IP do reguł zapory, aby nie mogły się ponownie zarejestrować przy użyciu nowego adresu e-mail. W moim przypadku działało to dobrze i moje pytanie nie dotyczy tej polityki.
Mój problem polega na tym, że w Drupal nie mogę znaleźć ostatniego adresu IP używanego przez identyfikator użytkownika. Tzn. Sprawca jest zgłaszany mi przez innych użytkowników i znam jego identyfikator użytkownika, ale nie mogę znaleźć jego adresu IP w dziennikach, ponieważ:
Włączyłem rejestrowanie syslog i widzę wiadomości Drupal w / var / log / messagess, ale rzadko pojawia się komunikat o logowaniu użytkownika, prawdopodobnie dlatego, że sesje są domyślnie długie i chciałbym zachować to w ten sposób przez komfort użytkownika.
Włączyłem także „rejestrowanie bazy danych”, ale nie wiem, gdzie to zobaczyć (która tabela bazy danych).
O ile mi wiadomo, Drupal nie zgłasza adresu IP używanego przez użytkowników w ich profilu użytkownika. Możesz utworzyć niestandardowy moduł, zweryfikować adres IP używany przez użytkownika i zapisać go we własnej tabeli bazy danych; następnie możesz pokazać to w profilu użytkownika użytkownikom, którzy mają odpowiednie uprawnienia (na przykład użytkownikom z uprawnieniami do administrowania użytkownikami).
Potrzebna jest funkcja ip_address () , której można użyć w implementacji hook_user_login () . Implementując hook_user_view () , możesz następnie pokazać takie informacje użytkownikom z odpowiednim uprawnieniem.
źródło
Jeśli korzystasz z modułu rejestrowania bazy danych, Drupal przechowuje te informacje w tabeli nadzoru pod
hostname
kolumną. Możesz albo napisać niestandardowe zapytania, aby uzyskać te informacje, albo użyć modułu Views Watchdog (obecnie tylko wersja deweloperska dla wersji 7.x, więc nie jestem pewien, jak dobrze działa w Drupal 7), aby udostępnić tę tabelę widokom.źródło
Pomogą w tym dwa ostatnie moduły:
Dziennik IP użytkownika , który ma integrację z widokami , oraz Menedżer adresów IP , który nie ma integracji z widokami, ale ma na celu integrację z Manifestem, Cave Your Trolls i Misery - wszystkie moduły związane z banowaniem.
źródło
session_id () daje bieżącemu użytkownikowi identyfikator sesji bez względu na to, czy jest on gościem czy członkiem.
źródło