Erlang:读取ip地址
Posted
技术标签:
【中文标题】Erlang:读取ip地址【英文标题】:Erlang: read ip address 【发布时间】: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
将 ,
更改为 .
。
我该怎么做?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Erlang:读取ip地址的主要内容,如果未能解决你的问题,请参考以下文章