9

我有以下 sql。可以很好地搜索 IP。但我也希望能够如此搜索

select * from table 
where (INET_ATON(ip) BETWEEN INET_ATON('10.12.77.1') AND INET_ATON('10.12.77.10') )
limit 30

结果很好

10.12.77.2
10.12.77.5
10.12.77.6

我怎样才能获得可用的 IP,例如

10.12.77.1
10.12.77.3
10.12.77.4
10.12.77.7
10.12.77.8
10.12.77.9
10.12.77.10

是否可以在 mysql 中执行,或者我应该在 Java 中执行此操作?

谢谢

4

2 回答 2

1

您是否尝试过不在:

select * from table 
where (INET_ATON(ip) NOT BETWEEN INET_ATON('10.12.77.1') AND INET_ATON('10.12.77.10') )
limit 30

顺便说一句,您的查询看起来是 1 到 10,那么为什么要限制 30 呢?应该是 10。

问候。

于 2015-03-05T20:49:19.567 回答
0

Apache Commons Net有一个SubnetUtils对 IP 和网络掩码计算简单有用的类。您可以使用有效的网络掩码值初始化对象并获取SubnetInfo类以获取各种信息。

SubnetUtils subnet = new SubnetUtils("10.12.77.1", "255.255.255.242");
SubnetInfo subnetInfo = subnet.getInfo();
于 2014-05-11T08:52:58.903 回答