2014-05-11 13 views
8

Ho il seguente sql. Funziona bene per la ricerca di IP. Ma mi piacerebbe anche essere in grado in modo da cercareTrova l'intervallo IP disponibile nella tabella mysql

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

risultati va bene

10.12.77.2 
10.12.77.5 
10.12.77.6 

Come posso ottenere gli IP disponibili, come

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 

è possibile fare in MySQL, o dovrei farlo in Java?

Thx

+0

Non è chiaro, cosa stai chiedendo ... Vuoi spazi all'inizio di ogni IP? –

+0

no no, voglio completare il primo risultato. Significa tutto l'indirizzo nell'intervallo: primo risultato. – user2475153

+0

Fallo in java, ecc. Questo non è un lavoro per sql –

risposta

0

Apache Commons Net ha una classe SubnetUtils che è facile e utile per i calcoli IP e maschera di rete. È possibile inizializzare un oggetto con valori di maschera di rete validi e ottenere la classe SubnetInfo per ottenere varie informazioni.

SubnetUtils subnet = new SubnetUtils("10.12.77.1", "255.255.255.242"); 
SubnetInfo subnetInfo = subnet.getInfo(); 
1

Non hai provate tra:

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

Tra l'altro la ricerca è alla ricerca da 1 a 10, quindi perché limite del 30? Dovrebbe essere 10.

Saluti.

Problemi correlati