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

كيف أحصل على اسم المضيف وip في ريلز؟

MaxReve

السؤال

Recommended Posts

  • 0

أسهل طريقة للحصول على اسم المضيف (Hostname) هي عن طريق استخدام الدالة gethostname من مكتبة socket حيث نعيّن النتيجة إلى متغير آخر كما في هذا المثال:

require 'socket'
hostname = Socket.gethostname

أما بالنسبة للحصول على عناوين IP، فإذا كنت تستخدم روبي 1.9 فيمكنك استخدام مكتبة socket أيضًا للحصول على قائمة من العناوين المحلية، فالدالة ip_address_list تُرجع مصفوفة من كائنات AddrInfo والتي يمكنك اختيار ما تريده منها من العناوين بناءا على ما الذي تريد أن تفعله  وعلى عدد الواجهات (interfaces) التي تملكها.
مثال بسيط سوف نختار فيه أول عنوان non-loopback IPV4 وستكون النتيجة عبارة عن سلسلة نصية:

require 'socket'
ip_address = Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_address

المصدر

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

  • 0

يمكنك إنجاز ذلك كالتالي:

host = `hostname`.strip # \n وإزالة اللاحقة shell الحصول على اسم المضيف من الشل
puts host               # إخراج اسم المضيف

أو الطريقة الأبسط من خلال host_with_port في controller.rb:

host_port= request.host_with_port

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...