первым узнаёт об IP-адресе посетителя веб-сервер (Apache, NGINX, что-то ещё) – он устанавливает сетевое соединение.
a) Фильтровать на основе IP можно силами веб-сервера (в вопросе не указали, какой у вас). «Белому списку» IP показывать сайт, всем прочим – заглушку.
b) Backend сайта (в вопросе никаких подробностей) тоже вполне справится с задачей. Может получить IP адрес посетителя от веб-сервера, и принимать решение в коде бэка: заглушку или нормальный контент.