miércoles, octubre 08, 2008

Geo localizador

Bueno, solo quiero darles un "update" del proyecto del geo localizador.

Ya se encuentra solventado el problema del algoritmo para pasar una ip a long, a continuación afinaré algunas cosas y agregaré otras.

Me gustaría incluir algo mas de documentación interna, el soporte para cache con ehcache, un par de indices a la base de datos (pienso indexar los campos donde se almacenan las ip en su formato long), también quiero crear un proyecto y dividir las interfaces de los servicios asi como los objetos comunes y helpers, osea basicamente una fachada.

Por ultimo les dejo el código necesario para pasar una ip a long:


StringTokenizer tokens = new StringTokenizer(ip, ".", false);
long longAddress = 0L;
int counter = 3;
long read = 0L;
long calculated = 0L;
try {
while (tokens.hasMoreTokens() && counter >= 0) {
read = new Long(tokens.nextToken()).longValue();
calculated = new Double(read * (Math.pow(256, counter)))
.longValue();
longAddress += calculated;
counter--;
}
} catch (NumberFormatException e) {

throw new BadIp4FormatException("Illegal IP address: " + ip
+ ", must be like 192.168.100.1", e);
}
if (counter > 0) {

throw new BadIp4FormatException("Illegal IP address: " + ip
+ ", must be like 192.168.100.1");
}
 

return longAddress;

No hay comentarios.: