Tôi cần lấy tên máy chủ lưu trữ mở rộng của máy chủ mà tập lệnh Ruby của tôi đang chạy. Trong Perl tôi đã sử dụng Sys :: Hostname :: Long với kết quả tốt. Google dường như đề nghị tôi nên sử dụng Socket.hostname trong ruby, nhưng đó là trả về chỉ nodename, không phải là tên máy đầy đủ.Làm thế nào tôi có thể nhận được FQDN của máy chủ hiện tại trong Ruby?
Trả lời
Điều này dường như làm việc:
hostname = Socket.gethostbyname(Socket.gethostname).first
Có thể là một chút đơn giản hơn => hostname = Socket.gethostname
Socket.gethostname không nhất thiết phải trả về FQDN. – dvorak
hostname = Socket.gethostbyname(Socket.gethostname).first
không được khuyến khích và sẽ chỉ làm việc nếu độ phân giải DNS ngược của bạn được đặt đúng cách lên. This Facter bug có giải thích dài hơn nếu cần.
Nếu bạn đọc mã facter, bạn sẽ nhận thấy rằng họ hơi sidestep the issue altogether by saying:
fqdn = hostname + domainname
nơi:
hostname = %[hostname]
domainname = %[hostname -f] # minus the first element
Đây là một giả định hợp lý mà không phụ thuộc vào thiết lập của DNS (có thể nằm ngoài hộp).
+1, điều này ít nhất sẽ làm việc cho * nix derivates – Shirkrin
Nếu tên miền không được đặt trên máy, hostname -f cũng sẽ truy vấn DNS. –
- 1. Làm thế nào tôi có thể nhận được UUID của Macbook hiện tại từ Objective-C?
- 2. Làm thế nào tôi có thể nhận được lớp hiện tại của một div với jQuery?
- 3. Làm thế nào tôi có thể nhận được giá trị của ant mục tiêu hiện tại?
- 4. Làm cách nào để nhận Máy chủ DNS hiện tại của tôi trong C#?
- 5. làm thế nào tôi có thể nhận được thời gian hiện tại trong C#?
- 6. ASP.NET MVC nhận máy chủ hiện tại
- 7. C#: Làm thế nào tôi có thể nhận được thời gian hiện tại thành một chuỗi?
- 8. Làm thế nào tôi có thể nhận được giá trị nguồn và biến trong tracebacks ruby?
- 9. Làm thế nào tôi có thể nhận được một mảng lười biếng trong Ruby?
- 10. Ruby - Làm thế nào tôi có thể nhận được tên phương thức trong chính nó?
- 11. làm thế nào tôi có thể có được tên thành phố của vị trí hiện tại của tôi?
- 12. Làm cách nào tôi có thể nhận múi giờ của máy chủ địa phương?
- 13. Làm thế nào tôi có thể nhận được dấu thời gian hiện nay trong PHP
- 14. Làm thế nào để chạy mã ruby của tôi sau khi máy chủ Rails bắt đầu?
- 15. Trong WPF, làm thế nào để có được nền nút của chủ đề hiện tại?
- 16. iphone SDK: Làm cách nào tôi có thể nhận hàng hiện tại được chọn cho UIPicker?
- 17. Làm thế nào tôi có thể nhận được trực quan có thể nhìn thấy của UITableView?
- 18. Tại sao tôi nhận được "không thể tìm thấy lỗi 'railties' với máy chủ Rails
- 19. Làm thế nào tôi có thể nhận được các giá trị lưu trữ cục bộ HTML5 ở phía máy chủ
- 20. Làm thế nào tôi có thể nhận được Emacs để thụt lề // nhận xét của tôi với mã của tôi?
- 21. Làm thế nào tôi có thể kiểm tra các phụ thuộc của máy chủ sql 'views'
- 22. Làm thế nào tôi có thể lấy tên của chương trình con hiện tại trong Perl?
- 23. Làm thế nào tôi có thể nhận được độ dài của một mảng trong awk?
- 24. Git: Làm thế nào tôi có thể sửa đổi cam kết của máy chủ?
- 25. Làm thế nào tôi có thể nhận được kích thước của một đối tượng trong HttpRuntime.Cache?
- 26. Làm thế nào tôi có thể kiểm tra khóa ssh của mình tại địa phương mà không cần máy chủ
- 27. Làm thế nào để có được vị trí hiện tại của điện thoại của tôi
- 28. Làm thế nào để có được mức âm lượng hiện tại của máy tính?
- 29. Làm thế nào tôi có thể nhận được perl grep thực hiện biểu thức regex chụp
- 30. Tại sao tôi nhận được lỗi không xác định Tên lỗi khi chạy máy chủ webrick?
Trên Mac OS X, điều này dường như trả về tên máy chủ trong chữ thường: '$ ruby -e 'đặt Socket.gethostbyname (Socket.gethostname) .first' xin.local' trái ngược với lệnh bash 'hostname'' $ hostname XIN.local' – asmaier