Google App Engine で MaxMind GeoLite Country データベースを使用しようとしています。ただし、App Engine では使用できない InetAddress クラスに依存しているため、Java API を機能させるのに苦労しています。
ただし、特定のホスト名の IP を決定するために InetAddress クラスのみを使用しているように見えるため、簡単な回避策があるかどうかはわかりません。私の場合、ホスト名はとにかく常に IP です。
私が必要としているのは、文字列として表される IP アドレスをネットワーク バイト オーダーのバイト配列 (InetAddress クラスの addr.getAddress() メソッドが提供する) に変換する方法です。
これは現在の 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()));
}