Erlang 有 inet.gethostname 来获取主机名:
iex(1)> {:ok, hostname} = :inet.gethostname
{:ok, 'Michaels-MacBook-Pro'}
但是如何获得域名呢?
:net_adm.dns_hostname(:net_adm.localhost)
似乎做了你想做的事。
这不是最优雅的解决方案,但这是我迄今为止发现的唯一有效的解决方案:
def fqdn do
{fqdn, _exit_status} = System.cmd("hostname", ["-f"])
String.trim(fqdn)
end