我已经按照https://stackoverflow.com/a/2241269/2458223中的答案(William Brendel建议),但是当我将结果与MYSQL进行比较时,大部分时间都会返回错误的结果。请查看
InetAddress bar = InetAddress.getByName("187.210.139.0");
value = ByteBuffer.wrap(bar.getAddress()).getInt();
结果你可以在这里查看...
JAVA结果(请参阅:http://ideone.com/CJ3qCU)
returns: 1143829760
MYSQL结果:
mysql> select inet_aton("187.210.139.0");
+----------------------------+
| inet_aton("187.210.139.0") |
+----------------------------+
| 3151137536 |
+----------------------------+
这里有什么问题..任何错误?请帮助!!
答案 0 :(得分:0)
Java -1143829760中的结果不是?不是1143829760?
无论如何,在Java中,
包裹(bar.getAddress())getInt();
INET_ATON();
IP地址“187.210.139.0”可以转换成二进制数:
1011 1011(187)。 1101 0010(210)。 1000 1011(139)。 0000 0000(0)
这些函数和方法在将IP转换为二进制数后读取此删除点(。)。
他们计算那个地址。
这就是为什么“inet_aton()”返回的数字大于“wrap(bar.getAddress())。getInt()”;