所以我被告知这里的 DBA 将在我们的 MySQL 数据库中的 DECIMAL(39,0) 字段中存储 IP 地址。
我如何才能将其转换为字符串以传递给我们的其他应用程序?
注意:我们的数据库不能再承受任何负载,因此需要在 Java 应用程序中完成尽可能多的工作。
注意 2:必须支持 IPv6。
最佳答案
使用
INET_NTOA
例如:SELECT INET_NTOA(num) AS ipaddr;
和
INET_ATON
例如:INSERT INTO addrTbl VALUES (..., INET_ATON('192.168.0.1'), ...)
之所以可行,是因为 IPv4 最初设计为将 IP 地址定义为 32 位数字。 dot-decimal notation是为了可读性。
更新
如果您希望在 Java 中执行从数字到点十进制表示法的转换,MindProd site has an example .
关于Java:如何将 MySQL DECIMAL(39,0) IP 地址转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1457374/