我需要从IP地址生成唯一的ID(字符串),反之亦然。唯一的ID必须是8-9个字符。有什么可以在java中做到的功能吗?针对IP地址的散列函数
0
A
回答
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("."));
}
+0
和IPv6的问题是不可能的,因为没有办法将16字节地址减少为8或9个字符串,而没有发生冲突风险 – Alnitak
+0
@MaxFichtelmann如何从输出字符串生成ip地址? –
+0
我已经添加了反向操作的功能 –
相关问题
- 1. 散列IP地址范围
- 2. 将IP地址散列到[0,H)
- 3. 函数指针地址(C++)
- 4. 函数返回的IP地址列表对于给定的IP地址和子网掩码
- 5. 哈希函数来散列IP碎片
- 6. iPad的绝对IP地址?
- 7. 散列函数在单独的链接比。打开地址
- 8. 是否有专门针对BitS的散列函数?
- 9. 如何从IP地址列表中查找IP地址范围
- 10. 在两个IP地址之间获取IP地址列表
- 11. 针对驻留在特定IP地址上的网站弱点?
- 12. htaccess:针对不同IP地址的不同重写规则
- 13. 针对Windows Phone 8模拟器的不同IP地址
- 14. 的IP地址
- 15. 谷歌地图的IP地址列表
- 16. 函数指针地址作为参考
- 17. MAC地址和IP地址
- 18. 变换IP地址,IP地址范围(起始IP - 结束IP)
- 19. 函数指针:物理地址或虚拟地址
- 20. .htaccess 301仅针对特定IP地址重定向
- 21. 散列函数
- 22. 本地IP地址?
- 23. 指针未对齐地址
- 24. 验证函数指针指向函数的地址。 CMockery
- 25. 如何在函数指针中使用函数的地址?
- 26. 如何根据表中的IP地址列表验证用户的IP地址?
- 27. IP地址
- 28. IP地址
- 29. php:geting ip地址
- 30. cURL IP地址
检查此链接https://www.mkyong.com/java/java-convert-ip-address-to-decimal-number/ –