问题:java.net.InetAddress 结果与 MYSQL 结果相比是错误的
ISSUE: java.net.InetAddress RESULTS are wrong when compared with MYSQL results
我遵循了 中的答案(William Brendel 建议),但大多数时候 returns 将结果与 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 |
+----------------------------+
这里有什么问题..任何错误??请帮忙!!
结果不是Java-1143829760吗?不是 1143829760?
无论如何,在Java,
wrap(bar.getAddress()).getInt();
它returns "signed int", 而在mysql,
inet_aton();
它returns“unsigned int”。
IP地址“187.210.139.0”可转换成二进制数为:
1011 1011(187). 1101 0010(210). 1000 1011(139). 0000 0000(0)
这些函数和方法在将IP转换为二进制数后读取这个去除点(.)。
然后他们计算出那个地址。
这就是为什么“inet_aton()”returns 比“wrap(bar.getAddress()).getInt()”;
大的原因
我遵循了 中的答案(William Brendel 建议),但大多数时候 returns 将结果与 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 |
+----------------------------+
这里有什么问题..任何错误??请帮忙!!
结果不是Java-1143829760吗?不是 1143829760?
无论如何,在Java,
wrap(bar.getAddress()).getInt();
它returns "signed int", 而在mysql,
inet_aton();
它returns“unsigned int”。
IP地址“187.210.139.0”可转换成二进制数为:
1011 1011(187). 1101 0010(210). 1000 1011(139). 0000 0000(0)
这些函数和方法在将IP转换为二进制数后读取这个去除点(.)。
然后他们计算出那个地址。
这就是为什么“inet_aton()”returns 比“wrap(bar.getAddress()).getInt()”;
大的原因