IP地址的哈希函数

时间:2017-04-06 07:46:52

标签: java hash ip-address uniqueidentifier

我需要从ip地址生成唯一ID(字符串),反之亦然。唯一ID必须为8-9个字符。是否有任何功能可以在java中执行此操作?

1 个答案:

答案 0 :(得分:2)

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

这可能是一种实施方式:

public static String ipToId(String ip) {
    return Arrays.stream(ip.split("\\."))
        .map(Integer::parseInt)
        .map(number -> String.format("%02X", number))
        .collect(Collectors.joining());
}

反过来可以通过:

完成
public static String idToIp( String id )
{
    return Stream.of( id )
            .map( DatatypeConverter::parseHexBinary )
            .flatMapToInt( bytes -> IntStream.range( 0, bytes.length )
                    .map( index -> bytes[index] & 0xFF ) )
            .mapToObj( String::valueOf )
            .collect( Collectors.joining( "." ) );
}