Я пытаюсь использовать базу данных MaxMind GeoLite Country в Google App Engine. Однако у меня возникают трудности с работой API Java, поскольку он опирается на класс InetAddress, который недоступен для использования в App Engine.
Однако я не уверен, что существует простой обходной путь, так как кажется, что он использует только класс InetAddress для определения IP-адреса данного имени хоста. В моем случае имя хоста всегда равно IP.
Мне нужен способ преобразования IP-адреса, представленного в виде String, в байтовый массив сетевого порядка байтов (который обеспечивает метод addr.getAddress () класса InetAddress).
Это код, который используется текущим API, мне нужно найти способ удалить все ссылки на InetAddress, хотя он по-прежнему работает!
Спасибо за ваше время.
/**
* 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()));
}