我需要從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/ –