我正在使用Glassfish网络服务器来运行我的网站。我还在开发网站,我想跟踪人们尝试使用网站的位置。特别是,我希望能够阻止整个非洲和中东访问我的网站,以防止欺诈。我还想知道某人的位置,以向他们展示他们在网站上的位置的相关内容。例如,如果用户从德克萨斯州达拉斯访问该站点,他将看到德克萨斯州达拉斯的内容。
我正在使用jsp / Java,并且更喜欢这样的解决方案。
我想这是通过某种方式将IP地址跟踪到某个位置来完成的。
答案 0 :(得分:0)
您可以使用JavaScript中的this Geo API来检测用户来自何处并使用window.load
处理重定向。我认为这不是正确的方法,因为用户可以在浏览器中阻止JavaScript执行。
另一方面,您可以使用MaxMind IP GeoLocation database并使用某些业务逻辑使用Servlet-Filter和方法ServletRequest#getRemoteAddr()
检测IP地址:
@WebFilter("/*")
public class IPFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
String clientIp = req.getRemoteAddr();
if (bannedIp(clientIp) {
response.sendRedirect(request.getContextPath() + "/bannedIp.jsp");
return;
}
chain.doFilter(req, res);
}
private boolean bannedIp(String clientIp) {
//add logic that detects if IP comes from a banned location...
}
}
答案 1 :(得分:0)