Raylar üzerinde Ruby makine adı ya da IP almak
Ben bu sürecin sürdürülmesi bir Ruby on Rails uygulaması ve am seyir için kolay bir yol bulmak için makine adı ya da IP adresi kutusuna gidiyorum (bu yana bir VM ve yeni örnekleri olabilir farklı hostname veya IP adresleri). Hızlı ve kolay bir şekilde Raylar üzerinde Ruby bunu yapmak için var mı?
Edit: cevap aşağıda doğru ancak Craig sağlanan açıklama yararlı (ayrıca cevap içinde bağlantı sağlanır):
[Aşağıda] kod yapmaz bağlantı veya herhangi bir paket göndermek için Google hangi 64.233.187.99). UDP beri vatansız bir protokol connect() sadece bir sistem çağrısı yapar paketleri yönlendirmek için nasıl dolduracağını adresi dayalı ve ne arayüz (ve bu nedenle IP adresi) bağlamak gerekir. () bir adres verir dizi aile (BUNLAR) içeren, Yerel bağlantı noktası, yerel Adres (hangi bizim istediğimiz şeydir) yuva.
CEVAP
Hostname
Sadece Ruby hostname almak için basit bir yoludur:
require 'socket'
hostname = Socket.gethostname
Bu yüzden, ana orijinal problem için çalışmaz yani ya gethostname uname sistem çağrısı kullanır, çünkü kendi adını bilmeye dayanır.
İşlevsel olarak bu hostname cevap aynıdır, harici bir program yürütmesini olmadan. Hostname olabilir ya da tam, makine yapılandırmasına bağlı olabilir.
IP Adresi
Ruby beri 1.9, sen de Yuva kütüphane yerel adreslerinin listesini almak için kullanabilirsiniz. ip_address_list AddrInfo nesneleri içeren bir dizi döndürür. Nasıl seçim olacaktır bağlıdır ne yapmak istediğini ve ne kadar çok arayüz var, ama burada bir örnek sadece seçer ilk olmayan geri döngü IPV4 IP adresi olarak bir dize:
require 'socket'
ip_address = Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_address

'DateTime, zaman Damgası, Zaman v...
Raylar ve Komisyon sorunları üzerinde ...
Raylar üzerinde Ruby _snowman, param i...
raylar üzerinde ruby koleksiyonu güzer...
Raylar üzerinde Ruby, ne biçim&; th&qu...