J'essaie d'utiliser la base de données MaxMind GeoLite Country sur Google App Engine. Cependant, j'ai de la difficulté à faire fonctionner l'API Java car elle repose sur la classe InetAddress qui n'est pas disponible sur App Engine.Évitez d'utiliser InetAddress - Obtenir une adresse IP brute dans l'ordre des octets du réseau
Cependant, je ne suis pas sûr s'il existe une solution de contournement simple car il semble qu'il utilise uniquement la classe InetAddress pour déterminer l'adresse IP d'un nom d'hôte donné. Dans mon cas, le nom d'hôte est toujours un IP de toute façon. Ce dont j'ai besoin, c'est d'un moyen de convertir une adresse IP représentée en String en un tableau d'octets de l'ordre des octets du réseau (que fournit la méthode addr.getAddress() de la classe InetAddress).
Ceci est le code que l'API utilise actuellement, j'ai besoin de trouver un moyen de supprimer toutes les références à InetAddress tout en s'assurant qu'il fonctionne toujours!
Merci pour votre temps.
/**
* Returns the country the IP address is in.
*
* @param ipAddress String version of an IP address, i.e. "127.0.0.1"
* @return the country the IP address is from.
*/
public Country getCountry(String ipAddress) {
InetAddress addr;
try {
addr = InetAddress.getByName(ipAddress);
} catch (UnknownHostException e) {
return UNKNOWN_COUNTRY;
}
return getCountry(bytesToLong(addr.getAddress()));
}
Toutes mes excuses pour la mise en forme du code, cela semblait bien lors de la création du post. Tout le code est là cependant. – Mylo