Elixir - 按名称获取主机?

Elixir - Get Host By Name?

如何使用 Elixir 获取主机名?

似乎没有受支持的 API 并且这两个解决方案似乎围绕着,

  1. Erlang 的 Inet
  2. 使用系统 (hostname)
  3. 分叉到 shell

Elixir 的一般理念是,如果标准 erlang 库中存在解决方案,则没有理由简单地使用 elixir 包装器重现该解决方案,除非您打算以某种方式提供附加功能。

或者换句话说,erlang 库是原生的。

iex(2)> :inet.gethostbyname('www.google.com')
{:ok, {:hostent, 'www.google.com', [], :inet, 4, [{216, 58, 192, 4}]}}

注意:上面的单引号很重要,你可以转换一个Elixir字符串 使用 String.to_charlist

到 Erlang
iex(5)> :inet.gethostbyname(String.to_char_list("www.google.com"))
{:ok, {:hostent, 'www.google.com', [], :inet, 4, [{216, 58, 192, 4}]}}