2010-02-05 14 views
34

मैं मशीन का होस्टनाम प्राप्त करने का प्रयास कर रहा हूं जो कि नियंत्रक से रेल अनुप्रयोग चल रहा है।रेल नियंत्रक से होस्टनाम प्राप्त करें

यह ध्यान में रखने का सबसे अच्छा तरीका क्या होगा कि इसे विंडोज़ और लिनक्स दोनों पर काम करना चाहिए?

उत्तर

22

वहाँ हमेशा है: कोई विंडोज

require 'socket' 
... 
Socket.gethostname 

मुझे मिल गया है जिसके साथ काम इस परीक्षण करने के लिए बॉक्स, लेकिन डॉक्स यह किया जा रहा है * nix विशिष्ट का कोई जिक्र नहीं किया जाता है।

6

उपयोग बैकटिक और कमांड hostname

current_host = `hostname` 

इस खोल को आदेश भेजता है, और होस्ट नाम देता है। कम से कम काम करता है: डेबियन लिनक्स, विंडोज़, सोलारिस।

+5

तुम क्या करने जा रहे हैं यह मैं प्रत्येक अनुरोध के लिए मूल्य को कैशिंग करने और एक कांटा() नहीं कर रहा हूं। –

+0

मैक ओएस पर भी काम करता है। – calasyr

77

सभी आप अपने नियंत्रक में अनुरोध वस्तु को देखने करना है:

request.host_with_port 

या यदि आप पोर्ट नहीं करना चाहते, बस

request.host 
+1

यह उपयोगी है कि आप यूआरएल और ऐसे पार्स का विश्लेषण करने की कोशिश कर रहे हैं, लेकिन मुझे लगता है कि यह विशेष प्रश्न उस मशीन या ओएस के वास्तविक नाम से संबंधित है। – taelor

+0

यदि आप होस्ट का आंतरिक नाम प्राप्त करना चाहते हैं तो यह आपकी सहायता नहीं करेगा – phoet

संबंधित मुद्दे