有一段时间我使用代码:
hostname = Socket.gethostbyname(Socket.gethostname).first
取自here .
但是,正如评论所说 - 它已被弃用,现在 rubocop 和 ruby 本身都在提示:
=$ ./z.rb
./z.rb:5: warning: Socket.gethostbyname is deprecated; use Addrinfo.getaddrinfo instead.
=$ rubocop z.rb
...
z.rb:5:13: W: Lint/DeprecatedClassMethods: Socket.gethostbyname is deprecated in favor of Addrinfo#getaddrinfo.
puts Socket.gethostbyname(Socket.gethostname).first
^^^^^^^^^^^^^
问题是我不知道如何使用 getaddrinfo 来获取相同的信息。谁能举个例子吗?
现在,我想我只会使用:
`hostname --fqdn`
这是有效的,因为我只在 Linux 上运行它,但这并不是一个很好的方法。
最佳答案
以其他方式获得帮助,但认为其他人也可能受益。
当前的方法是:
require 'socket'
Addrinfo.getaddrinfo(Socket.gethostname, nil).first.getnameinfo.first
关于ruby - 获取当前主机的 FQDN 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73237033/