Elixir - 按名称获取主机?

Dan*_*lia 4 elixir

你如何使用Elixir gethostbyname?

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

  1. Erlang的Inet
  2. 使用System(hostname)分叉到shell

Fre*_*Dog 8

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

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

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

注意:上面的单引号很重要,您可以使用String.to_charlist将Elixir字符串转换为Erlang字符串

iex(5)> :inet.gethostbyname(String.to_char_list("www.google.com"))
{:ok, {:hostent, 'www.google.com', [], :inet, 4, [{216, 58, 192, 4}]}}
Run Code Online (Sandbox Code Playgroud)