shijiang1130 发表于 2015-02-04 22:16

【trunc】【rem】erlang ip to long以及long to ip

本帖最后由 shijiang1130 于 2015-02-04 23:08 编辑

这里的long是指一个大的整数。我们知道ip是这样的形状 8.8.8.8,这里的long就是指的 8 * 256 ^3 + 8 * 256 ^2 + 8 * 256 ^1 + 8 *256 ^0
在这个反转过程中我们要用到trunc这个内置函数。

shijiang1130 发表于 2015-02-04 23:09

ip2long(Ip)->
        = string:tokens(Ip,"."),
       list_to_integer(A)*256*256*256 + list_to_integer(B)*256*256 + list_to_integer(C)*256 +list_to_integer(D).

shijiang1130 发表于 2015-02-04 23:10

shijiang1130 发表于 2015-02-04 23:10

shijiang1130 发表于 2015-02-04 23:10

long2ip(Int)->
        lists:concat([trunc(Int/(256*256*256)),".",trunc((Int rem (256*256*256))/(256*256)),".",
                                trunc((Int rem (256*256))/256),".", trunc(Int rem 256)]).

shijiang1130 发表于 2015-02-04 23:11

页: [1]
查看完整版本: 【trunc】【rem】erlang ip to long以及long to ip