Если прокси паблик -- парсить сайты с пабликом и сравнивать c ip пользователя, если transperent -- в запросе будет заголовок с реальным ip(REMOTE_ADDR). Если есть один из двух пунктов -- 100% прокси, причем http. Если прокси другого типа или анонимный и приватнный -- никак. WhoIs еще можно парсить(если на ip есть сайты -- почти 100%, что не простой пользователь, но не факт, с работы, например, может зашел).
это ОЧЕНЬ "дорогие" операции с низкой эффективностью. Да, можно составить список публичных проксей с нескольких ресурсов и автограбящий скрипт, раз в час освежающий этот список; на основе списка сделать блокировку фаерволом и отсекать халявщиков. Описанные меры - капля в море, т.к. возможностей сменить IP - миллион (дедик, например). Если ТС хочет сделать защиту от мультиводства, помимо фиксирования IP, нужно использовать куки и флеш-куки, это более эффективно.
А вы уверены, что такая защита нужна? Просто зачем? ИМХО лучше привязываться к телефону или по кукам, как уже сказали.
Определяешь прокси, посылаешь на сайты по типу myip, и определяете анонимность, а потом применяете действия.
PHP: <?php if(empty($_SERVER['HTTP_USER_AGENT'])||strpos($_SERVER['HTTP_X_FORWARDED_FOR'],',')||strpos($_SERVER['HTTP_VIA'],'proxy')){ die('прокси!'); } ?>
Возможно, эффективнее всего будет выполнять проверку страны посетителя по IP адресу, русских прокси в паблике очень мало.
Определит большую часть существующих прокси: подключение к REMOTE_ADDR если подключение удалось значит прокси, нужно будет знать порт, сканировать все порты либо основные 80, 8080, 3128..
Простой способ - смотреть на вид сетки, с которой пришел пользователь. Домашние компьютеры в 99% сидят на динамическом ипе, а прокси - на статическом. базы дипазонов динамических адресов доступны в сети (http://www.dnsbl.nl.sorbs.net/ например) или можно составить самому. Для начала можно просто банить сетку (AS), на которой была замечена хотя б одна паблик прокси.