我从 Maxmind 购买了 GeoIP ISP 数据库的站点许可证,并决定在我的 Google App Engine 项目中实施它。
我用一个使用相同 API/JAR 的常规 Java 项目测试了我自己的外部 IP,并且能够将其解析为 Comcast。
在 Google App Engine 中实现它一直很痛苦。使用相同的确切调用(我自己的外部 IP),我收到各种 IOExceptions,特别是使用标准 LookupService(从文件读取)时的 EOFExceptions 和使用基于内存的 LookupService 时的 OutOfBoundsArrayExceptions。
一些具体信息: 数据库文件大小不应该成为问题。它大约是~3mb。你可以在这里找到开源的 API:https ://github.com/maxmind/geoip-api-java
我最终会弄清楚这个问题,但它似乎相当低级,因此可能需要一些时间。我想知道其他人是否有任何问题。
更新 - 每当使用 Commons Codec 1.8 DigestUtils.md5Hex 检查时,我刚刚确认了 .dat 文件的 MD5 更改。
它不同于工作文件的 MD5。