Интересует вопрос, каким образом при помощи пхп-скрипта можно понять, что чел использует анонимную прокси? Пока нарыл только поиск по РВЛ-базам (но это довольно долго, прийдется делать кешер как минимум) или в запросе присутсвуют хеадеры X-(что то там)-Via и (или) Via содержит не существующий домен а что то типа INTERNET. Буду благодарен за любые идеи.
Один из способов - попробовать послать запрос самому себе через этот самй IP, который, как ты подозреваешь, является проксей. Если пакет получишь - значит действительно это прокся. Или же просто проверить открыты ли на хосте порты 8080, 3128, 8081 и т.п. Если открыты - то 99% что это прокся. Правда счас очень многие прокси имеют различный входной и выходной IP. В таком случае однозначно определить прокся это или нет -затруднительно. Другой способ - анализ VIA и других полей. Изучи внимательно ответные пакеты различных проксей здесь /proxy Увидишь какие варианты бывают. Однако скрывающие прокси не вводят никаких дополнительных полей в HTTP заголовки, поэтому и этот способ против них не годится. А вообще-то стопроцентный способ такой - при прямом коннекте peer-to-peer, remote port для сокета сервера должен совпадать с local port на сокете браузера клиента. Если они не совпадают - значит используется внешний фаерволл или прокся. Однако проблема в том, что определить local port сокета браузера через javascript кажись нельзя.
Ну пока реализовал у себя пробу коннекта по популярным портам (именно с даунлоадом файлов) + думаю робота-собирателя ипшек с обновляющихся списков сделать. Больше разумных методов для реализации блока проксей в чате не вижу -- слишком долгое время логина получается.