我從Maxmind購買了GeoIP ISP數據庫的網站許可證,並決定在我的Google App Engine項目中實施它。Maxmind的Java API getOrg在Google App Engine中導致IOExceptions,但在標準Java中導致IOExceptions
我使用一個普通的Java項目測試了我自己的外部IP,它使用了相同的API/JAR,並且能夠將它解析到Comcast。
在Google App Engine中實現它一直很痛苦。使用相同的確切調用(我自己的外部IP),每當使用標準LookupService(從文件讀取)和OutOfBoundsArrayExceptions(每當使用基於內存的LookupService)時,都會收到各種IOException,特別是EOFExceptions。
一些具體信息: 數據庫文件大小不應該是一個問題。它約爲3mb左右。 你可以在這裏找到API來源:https://github.com/maxmind/geoip-api-java
我最終會找出這個問題,但它似乎是相當低級的,所以可能需要一些時間。我想知道是否有其他人有任何問題。
更新 - 我剛剛確認.dat文件的MD5更改,只要選中使用Commons Codec 1.8 DigestUtils.md5Hex。
它與工作文件的MD5不同。
與您的問題沒有嚴格關係,但您是否知道GAE會爲請求(國家,地區,城市,城市經緯度)提供地理位置信息。請參閱https://developers.google.com/appengine/docs/java/#Request_Headers。 –
我知道,但這在識別用戶的ISP方面並沒有什麼幫助。但是,感謝信息!如果我稍後需要,可能會派上用場。 – Zerkz
更新!我剛剛確認使用Commons Codec 1.8 DigestUtils.md5Hex進行檢查時,.dat文件的MD5更改。 它與工作文件的MD5不同。 – Zerkz