Avatar ·

كيفية الحصول على عنوان IP للعميل في PHP؟ مشاكل مع HTTP_X_FORWARDED_FOR و REMOTE_ADDR

مرحباً بالجميع! أنا مطور PHP مبتدئ وواجهت مشكلة في الحصول على عنوان IP الحقيقي لزائر الموقع. أكتب نظاماً بسيطاً لتسجيل أنشطة المستخدمين. أحتاج إلى حفظ IP الذي جاء منه الطلب. أستخدم المتغير القياسي `$_SERVER['REMOTE_ADDR']`، لكني لاحظت أنه غالباً ما يظهر 127.0.0.1 (عند الاختبار محلياً) أو عنوان خادمي، وليس IP العميل الحقيقي. إليك الكود المبسط الذي أستخدمه حالياً: ```php ``` قرأت في المنتديات أنه يجب التحقق من `HTTP_X_FORWARDED_FOR` أو `HTTP_CLIENT_IP`، لكن عندما جربت حصلت على سلسلة فارغة أو null. بالإضافة إلى ذلك، سمعت أن هذه الرؤوس يمكن تزويرها، وهذا غير آمن. أرشدوني، كيف يمكن الحصول بشكل صحيح وموثوق على عنوان IP للمستخدم الحقيقي الذي يدخل عبر proxy أو CDN (مثل Cloudflare) أو موازن التحميل؟ أحتاج طريقة عامة تعمل في معظم الحالات.