Прокси не изменяет адрес страницы, запрашиваемой вашим браузером, если вы не используете что-то вроде кеша Google. Прокси-сервер просто принимает ваш запрос, извлекает содержимое любого адреса в вашем запросе и пересылает ответ на ваш компьютер. Он ни в коем случае не должен менять адрес, поскольку это означает, что вы запрашиваете не то, что получаете.
Если бы локальный IP-адрес был доступен в Javascript, вы могли бы тривиально проверить, совпадает ли адрес, с которого поступил запрос, с адресом, обнаруженным в Javascript, но Javascript не может справиться с этой низкоуровневой сетевой концепцией. Может быть подписанный Java-апплет, а может быть и апплет Flash / Silverlight, хотя я только об этом и догадываюсь.
Но проверка IP-адресов не удастся так же просто, как домашний широкополосный маршрутизатор. «Локальный» IP вполне может быть чем-то вроде 10.0.0.13, но ваш сайт обнаружит запрос как поступающий с любого внешнего адреса маршрутизатора. Там не задействован «прокси», просто шлюз NAT, но запросите IP! = IP-адрес клиента и вау, вы прокси, чувак!
Самый надежный (и все еще не особенно надежный) метод - это проверка на наличие различных заголовков прокси, таких как X-Forwarded-For
.