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

السؤال

نشر (معدل)

أقوم بإستخدام node.js للعمل على مشروع بدون الإعتماد على إطار عمل   Express كيف يمكنني تحديد عنوان بروتوكل الإنترنت (IP Address) الخاص بالمستخدم لدي قائمة سوداء بالعناوين المحجوبه وأريد أن أحصل على العنوان الخاص بالمستخدم الذي يحاول الوصول للتطبيق ومن ثم إلغاء طلبه أو إستكماله على حسب هل العنوان موجود داخل القائمة السوداء أم لا

تم التعديل في بواسطة محمد هاني3

Recommended Posts

  • 0
نشر

يمكنك الحصول على IP Address من خلال:

req.connection.remoteAddress

بحيث يمكنك الحصول على العنوان حسب نوع الاتصال من اتصال http أو من socket,...

req.ip 
req.connection.remoteAddress 
req.socket.remoteAddress 
req.connection.socket.remoteAddress;

وبعدها يمكنك إنشاء حلقة تكرارية للمرور على المصفوفة التي تحوي العناوين المحظورة ومقارنة هذا العنوان بها، بشكل مشابه للتالي:

if(blackList.indexOf(ip) > -1)
    {
        res.end(); // إنهاء الطلب في حال كان العنوان موجود
    }

ولكن يوجد العديد من المكتبات الجاهزة التي يتم استخدامها مع express ومنها: express-ipfilter و express-ip-block والتي ستسهّل عليك العمل وتوفّر لك العديد من المزايا الإضافية.

  • 0
نشر

يمكنك الحصول على عنوان الIP بدون إستخدام إطار عمل مثل Express عن طريق استخدام هذا الكود

const http = require('http');
const server = http.createServer((req, res) => {
  const ip = res.socket.remoteAddress; // هنا تحصل على عنوان الأي بي للمستخدم
}).listen(3000);

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...