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地址的主要内容,如果未能解决你的问题,请参考以下文章

labview里面怎么读取本地的ip地址

如何在 C++ 中读取 Windows 默认网关 IP 地址

Erlang节点通信——端口转发

使用 SQLDataReader 读取 IP 地址

如何根据国家/地区的IP地址重定向网站

TCP如何在解复用中读取IP地址?