اذهب إلى المحتوى
  • 0

كيفية الحصول على عنوان ip الخاص بالزائرين في فلاسك Flask؟

Mohssen A Mohssen

السؤال

أريد الحصول على عنوان ip الخاص بأي مستخدم يزور مسار معين في تطبيق فلاسك Flask من أجل تخزين بعض المعلومات في عملية logging

كيف أقوم بهذا الأمر؟

أنا أستخدم flask 1.1 و python 3.9

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يوفر فلاسك Flask إمكانية معرفة عنوان IP الخاص بالمستخدم من خلال إستخدام الكائن request، حيث يحتوي على الخاصية remote_addr والتي تشير إلى عنوان IP الخاص بالمستخدم:

from flask import Flask, request

@app.route('/')
def foo():
    ip = request.remote_addr
    return f"your IP is {ip}"

إذا قام أي مستخدم بزيارة المسار / سوف يحصل على عنوان IP الخاص به:

your IP is 104.16.154.36

وإذا قمت بتشغيل التطبيق من خلال خادم محلي localhost أو إذا كنت تستعمل proxy لتشغيل التطبيق مثل إستخدام nginx سوف تحصل على النتيجة التالية:

your IP is 127.0.0.1

لذلك يمكنك إستعمال الكود التالي للحصول على عنوان المستخدم نفسه حتى وإن كنت تستعمل proxy:

from flask import Flask, request

@app.route('/')
def foo():
    if request.environ.get('HTTP_X_FORWARDED_FOR') is None:
        ip = request.environ['REMOTE_ADDR']
    else:
        ip = request.environ['HTTP_X_FORWARDED_FOR']  # if behind a proxy
    return f"your IP is {ip}"

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...