【问题标题】:Erlang: read ip addressErlang:读取ip地址
【发布时间】:2016-06-30 21:19:24
【问题描述】:

我正在尝试使用 Erlang 获取我的 IP 地址。

我从这里找到了这个例子:Erlang: Finding my IP Address

local_ip_v4() ->
    {ok, Addrs} = inet:getifaddrs(),
    hd([Addr || {_, Opts} <- Addrs, {addr, Addr} <- Opts, size(Addr) == 4, Addr =/= {127,0,0,1}]).

但它返回一个像这样的值:{127,0,0,1}

我希望它返回这样的值:"{127,0,0,1}" 带双引号 (""),因为我想使用 re:replace, 更改为 .

我该怎么做?

【问题讨论】:

    标签: erlang erl


    【解决方案1】:

    如果要将IP地址转换为字符串,可以使用函数inet:ntoa/1

    > inet:ntoa({127, 0, 0, 1}).
    "127.0.0.1"
    

    另外,它还可以处理 IPv6 地址:

    > inet:ntoa({0,0,0,0,0,0,0,1}).
    "::1"
    

    【讨论】:

      【解决方案2】:

      该函数返回元组,因为这是 erlang 代码可以本地处理的。您可能想要做的是将此元组转换为字符串,然后应用字符串操作。可以找到有关如何执行此操作的详细信息,例如在Convert erlang terms to string, or decode erlang binary

      【讨论】:

        猜你喜欢
        • 2018-08-26
        • 1970-01-01
        • 2016-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-27
        • 1970-01-01
        相关资源
        最近更新 更多