我有以下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
我如何获得像
这样的可用IP10.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中执行此操作?
THX
答案 0 :(得分: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。
问候。
答案 1 :(得分:0)
Apache Commons Net有一个SubnetUtils
类,对于IP和Netmask计算来说非常简单有用。您可以使用有效的网络掩码值初始化对象,并获取SubnetInfo
类以获取各种信息。
SubnetUtils subnet = new SubnetUtils("10.12.77.1", "255.255.255.242");
SubnetInfo subnetInfo = subnet.getInfo();