it-swarm-id.com

Cari tahu alamat IP pengguna yang diberikan UID mereka?

Saya menjalankan Drupal 7 situs web dengan permainan kartu multi-pemain Rusia dan harus memblokir beberapa pemain yang sangat menyebalkan setiap 4-5 hari.

Sebelum Drupal Saya menggunakan phpBB 3. Ketika orang-orang ini datang dari kota/desa kecil, saya hanya akan menambahkan jaringan IP mereka ke aturan firewall, sehingga mereka tidak bisa kembali mendaftar dengan alamat email baru. Ini berfungsi baik dalam kasus saya dan pertanyaan saya bukan tentang kebijakan ini.

Masalah saya adalah bahwa dengan Drupal, saya tidak dapat menemukan alamat IP terakhir yang digunakan oleh id pengguna. Yaitu. pelaku dilaporkan kepada saya oleh pengguna lain dan saya tahu uid-nya, tetapi saya tidak dapat menemukan alamat IP-nya di log, karena:

  1. Saya telah mengaktifkan syslog-logging dan melihat Drupal pesan di/var/log/messagess tetapi jarang ada pesan tentang pengguna yang masuk, mungkin karena sesi lama secara default, dan saya ingin tetap seperti ini untuk kenyamanan pengguna.

  2. Saya juga telah mengaktifkan "pencatatan basis data," tetapi tidak tahu di mana melihatnya (tabel database mana).

8
Alexander Farber

Jika Anda memiliki modul statistik yang diaktifkan, tabel "accesslog" berisi IP untuk semua pengunjung Anda.

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

Jika statistik Anda tidak diaktifkan, saya sarankan Anda berhenti, bahkan untuk hasil ini, karena mengaktifkannya, menyebabkan penalti kinerja yang parah.

Dalam hal ini, Anda dapat menggunakan tabel sessions:

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

Manfaat yang pertama daripada yang terakhir, adalah yang pertama akan selalu menunjukkan nama host terbaru, sedangkan yang terakhir mungkin tidak selalu up to date.

9
berkes

Sejauh yang saya tahu, Drupal tidak melaporkan IP yang digunakan oleh pengguna di profil pengguna mereka. Anda dapat membuat modul khusus, memverifikasi IP yang digunakan oleh pengguna, dan merekamnya di memiliki tabel basis data sendiri; maka Anda dapat menampilkannya di profil pengguna, kepada pengguna yang memiliki izin yang tepat (misalnya, kepada pengguna dengan izin untuk mengelola pengguna).

Fungsi yang Anda butuhkan adalah ip_address () , yang dapat Anda gunakan dalam implementasi Anda hook_user_login () . Menerapkan hook_user_view () , Anda kemudian dapat menampilkan informasi tersebut kepada pengguna dengan izin yang tepat.

5
kiamlaluno

Jika Anda menggunakan modul pencatatan basis data, Drupal menyimpan informasi ini di tabel watchdog, di bawah kolom hostname. Anda dapat menulis kueri khusus untuk mendapatkan informasi ini, atau gunakan modul Watchdog Views (saat ini hanya rilis dev untuk 7.x, jadi saya tidak yakin seberapa baik kerjanya di Drupal 7) untuk mengekspos tabel itu ke Tampilan.

3
jhedstrom

Dua modul terbaru dapat membantu dengan ini:

Log IP Pengguna , yang memiliki integrasi Views, dan IP Address Manager , yang tidak memiliki integrasi Views tetapi dimaksudkan untuk diintegrasikan dengan Manifest, Cave Troll Anda, dan Misery-- semua pelarangan modul terkait.

1
Patrick Kenny