Если вы выборочно разрешаете доступ к определенным веб-страницам, вы, по сути, действуете как прокси.И вам нужно будет действовать как единое целое, если вы хотите отвечать клиентам со страницей с ошибкой.
Браузер, отправляющий HTTP-запрос, будет ожидать ответа на том же соединении, которое он открыл.Чтобы вернуть «заблокированную» страницу, вам нужно определить, находится ли соединение в каком-то месте, куда вы не хотите, чтобы пользователь пошел, и если нет, вернуть действительный ответ HTTP (даже если этот ответ является ошибкой HTTP).например, «403 Forbidden» или что-то более подходящее для прокси-сервера) для того же соединения .
Если вы блокируете соединение еще до его открытия, т.е. блокируете доступ к определенным IP-адресамтогда вы застряли.Максимум, что вы могли бы сделать, это вернуть сообщение ICMP о том, что хост недоступен.По крайней мере, вам нужно принять соединение, принять входящий запрос и ответить сообщением об ошибке.Меньше, и браузер, как правило, не знает, что с ним делать.