احصل على IP الحقيقي للزائر خلف Cloudflare أو موازن الأحمال
كيف يمكن لخادم خلف بروكسي الحصول بأمان على IP الحقيقي للزائر، باستخدام Nginx وNode.js وPHP.
لماذا يبدو IP مختلفًا
عندما يكون Cloudflare أو موازن أحمال أو Nginx أمام موقعك، تأتي الاتصالات التي يستقبلها خادمك من ذلك البروكسي، فترى IP البروكسي بدلًا من IP الزائر. يوجد IP الزائر في ترويسة يضيفها البروكسي.
Cloudflare
يضع Cloudflare عنوان IP واحدًا للزائر في ترويسة CF-Connecting-IP. للتأكد من أن الطلب جاء فعلًا من Cloudflare، لا تثق بهذه الترويسة إلا إذا كان IP الاتصال ضمن نطاقات IP المنشورة من Cloudflare (cloudflare.com/ips).
X-Forwarded-For
عندما يمر الطلب عبر عدة بروكسيات، تجمع X-Forwarded-For عناوين IP الخاصة بها مفصولة بفواصل. تُعرف القيمة الأولى بأنها الزائر، لكن الزائر يستطيع كتابتها بنفسه، لذا عُدّ رجوعًا من القيمة التي أضافها البروكسي الخاص بك أخيرًا واستخدم القيمة الموجودة في موضع يمكنك الوثوق به.
Nginx
باستخدام وحدة real_ip، أدرج نطاقات البروكسي لديك في set_real_ip_from واضبط real_ip_header على CF-Connecting-IP أو X-Forwarded-For. بعد ذلك تستقبل سجلاتك وتطبيقك IP الزائر.
Node.js وPHP
في Express، اضبط app.set("trust proxy", عدد البروكسيات) فيصبح req.ip هو IP الزائر. في PHP، استخدم $_SERVER["HTTP_CF_CONNECTING_IP"] فقط عندما يكون $_SERVER["REMOTE_ADDR"] هو البروكسي الخاص بك.
تحقق من النتيجة
بعد الإعداد، إذا تطابق IP الذي يسجّله موقعك مع IP المعروض في الصفحة الرئيسية لـ IPinfoBox، فالإعداد يعمل.
افحص عنوان IP وموقعك الآن.
افحص IP الخاص بي