首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IP地址的散列函数

IP地址的散列函数
EN

Stack Overflow用户
提问于 2017-04-06 15:46:52
回答 1查看 2K关注 0票数 2

我需要从ip地址生成唯一的ID(字符串),反之亦然。唯一Id必须为8-9个字符。在java中有没有可以做到这一点的has函数?

EN

回答 1

Stack Overflow用户

发布于 2017-04-06 15:55:46

由于IPv4地址由4个字节组成,因此您可以简单地使用十六进制表示法,这将导致8个字符

这可能是一个实现:

代码语言:javascript
运行
复制
public static String ipToId(String ip) {
    return Arrays.stream(ip.split("\\."))
        .map(Integer::parseInt)
        .map(number -> String.format("%02X", number))
        .collect(Collectors.joining());
}

反向操作可以通过以下方式完成:

代码语言:javascript
运行
复制
public static String idToIp( String id )
{
    return Stream.of( id )
            .map( Base64.getDecoder()::decode )
            .flatMapToInt( bytes -> IntStream.range( 0, bytes.length )
                    .map( index -> bytes[index] & 0xFF ) )
            .mapToObj( String::valueOf )
            .collect( Collectors.joining( "." ) );
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43248866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档