【发布时间】:2012-09-02 01:53:40
【问题描述】:
我正在使用 java playframework2,我似乎无法使用它获得正确的 IP 地址。它在每次请求后不断变化。
我的意思是流量分析网站在你的标题中实现了 javascript 来分析你的流量,所以应该可以使用 javascript 对吗?
如果框架不提供这样的功能,还有其他方法可以从客户端获取ip吗?
我想建立一个访客计数器,但它应该只计算唯一访客。也许我不必使用IP地址?
我知道有http://jsonip.appspot.com/,但它不可靠。过去 2 天我无法使用它,因为它超出了谷歌应用引擎的配额。
这是我的代码
public static <T> void increaseViews(String title, String ip,
Class<T> objClass) throws UnknownHostException, MongoException,
DbAuthException {
Logger.info("Ip address: " + ip);
String ipCache = title + "-" + ip;
if (Cache.get(ipCache) == null) {
Cache.set(ipCache, "block", 86400);
increment(title, objClass);
}
}
private static <T> void increment(String title, Class<T> objClass)
throws UnknownHostException, MongoException, DbAuthException {
// update database
}
我这样称呼它:
UserGuides.increaseViews(ug.title, request().remoteAddress(),
UserGuides.class);
如果我按照 Heroku 上的日志进行操作,每次重新加载页面时,我的 ip 地址都会不同。
【问题讨论】:
-
可以通过play框架获取ip地址,或许你应该向我们展示一些你正在尝试用代码做什么。
-
@Jordan:更新了我的代码
-
我添加了一个答案,希望能解决您的问题,而无需额外工作来实施辅助 ip 检测系统。
标签: java javascript heroku ip playframework-2.0