it-swarm.asia

معرفة عنوان IP الخاص بالمستخدم بالنظر إلى معرف المستخدم الخاص به؟

أنا أركض Drupal 7 موقع ويب به لعبة روسية متعددة اللاعبين ويجب أن أحظر بعض اللاعبين المزعجين كل 4-5 أيام.

قبل Drupal كنت أستخدم phpBB 3. عندما يأتي هؤلاء الأشخاص من مدينة/قرية صغيرة ، أود فقط إضافة شبكة IP الخاصة بهم إلى قواعد جدار الحماية ، بحيث لا يمكنهم إعادة التسجيل بعنوان بريد جديد. نجح هذا في حالتي وسؤالي لا يتعلق بهذه السياسة.

مشكلتي هي أنه مع Drupal ، لا يمكنني العثور على آخر عنوان IP يستخدمه معرف المستخدم. بمعنى آخر. أبلغ المستخدمون الآخرون عن المسيء وأنا أعرف معرفته ، ولكن لا يمكنني العثور على عنوان IP الخاص به في السجلات ، لأن:

  1. لقد قمت بتمكين تسجيل syslog ورؤية Drupal في/var/log/messagess ولكن نادرًا ما توجد رسالة حول تسجيل دخول المستخدم ، ربما لأن الجلسات طويلة افتراضيًا ، وأنا يود الاحتفاظ بها بهذه الطريقة لراحة المستخدم.

  2. لقد قمت أيضًا بتمكين "تسجيل قاعدة البيانات" ، ولكن لا أعرف مكان رؤيتها (أي جدول قاعدة البيانات).

8
Alexander Farber

إذا قمت بتمكين وحدة الإحصائيات ، فإن جدول "الوصول" يحتوي على عناوين IP لجميع زوارك.

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

إذا لم يكن لديك إحصائيات ممكّنة ، أنصحك بتركها متوقفة ، حتى لهذه النتيجة ، لأن تمكينها ، يسبب عقوبة أداء شديدة.

في هذه الحالة ، يمكنك استخدام sessions table:

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

فائدة الأول على الأخير ، هو أن الأول سيعرض لك دائمًا اسم المضيف الأخير ، في حين أن الأخير قد لا يكون دائمًا محدثًا.

9
berkes

على حد علمي ، Drupal لا يُبلغ عن IP الذي يستخدمه المستخدمون في ملف تعريف المستخدم الخاص بهم. يمكنك إنشاء وحدة مخصصة ، والتحقق من IP الذي يستخدمه المستخدم ، وتسجيله في جدول قاعدة البيانات الخاصة به ؛ ثم يمكنك إظهاره في ملف تعريف المستخدم للمستخدمين الذين لديهم الإذن الصحيح (على سبيل المثال ، للمستخدمين الذين لديهم إذن لإدارة المستخدمين).

الوظيفة التي تحتاجها هي ip_address () ، والتي يمكنك استخدامها في تنفيذ hook_user_login () . تنفيذ hook_user_view () ، يمكنك بعد ذلك إظهار هذه المعلومات للمستخدمين مع الإذن الصحيح.

5
kiamlaluno

إذا كنت تستخدم وحدة تسجيل قاعدة البيانات ، Drupal يخزن هذه المعلومات في جدول المراقبة ، تحت العمود hostname. يمكنك كتابة استعلامات مخصصة للحصول على هذه المعلومات ، أو استخدم وحدة مراقبة المشاهدات (حاليًا فقط إصدار مطور لـ 7.x ، لذلك لست متأكدًا من مدى نجاحه في Drupal 7) لفضح هذا الجدول إلى المشاهدات.

3
jhedstrom

قد تساعد وحدتان حديثتان في هذا:

ser IP Log ، الذي يتضمن تكامل طرق العرض ، و IP Address Manager ، الذي لا يشتمل على تكامل طرق العرض ولكنه مخصص للتكامل مع Manifest و Cave Your Trolls و Misery-- جميع الوحدات ذات الصلة بحظر.

1
Patrick Kenny