Как заблокировать отдельные области с моего веб-сервера

Я использую веб-сервер Glassfish для запуска своего веб-сайта. Я все еще разрабатываю веб-сайт, и я хотел бы проследить место, откуда люди пытаются использовать веб-сайт. В частности, я хотел бы иметь возможность блокировать доступ всей Африки и Ближнего Востока к моему веб-сайту в попытке предотвратить мошенничество. Кроме того, я хотел бы узнать чье-либо местоположение, чтобы показать им связанный контент с их местоположением на веб-сайте. Например, если пользователь заходит на сайт из Далласа, штат Техас, он увидит контент из Далласа, штат Техас.

Я использую JSP /Java и предпочел бы такое решение.

Я полагаю, что это делается путем отслеживания IP-адреса в определенном месте.

2 ответа

Я могу дать вам две ссылки. Тот, который определил бы название страны путем анализа ip, а затем заблокировал бы его веб-фильтрацию.

  1. Метод определения страны по ip: ссылка
  2. Класс веб-фильтра, который был указан в другом сообщении stackru: ссылка

Вы можете использовать этот Geo API из JavaScript, чтобы определить, откуда пришел пользователь, и обработать перенаправление, используя window.load, Я не считаю это правильным подходом, поскольку пользователи могут блокировать выполнение JavaScript в своих браузерах.

С другой стороны, вы можете использовать базу данных MaxMind IP GeoLocation и использовать некоторую бизнес-логику для определения адресов IP с помощью Servlet-Filter и метода. ServletRequest#getRemoteAddr():

@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...
    }
}
Другие вопросы по тегам