Intereting Posts
Простой HTML DOM Parser – пропустить определенный элемент Пользовательское поле Drupal 7 сохраняет только первый символ phpmyadmin Ошибка с php7: Отсутствует расширение json Как запрограммировать список показателей и размеров с помощью функций API Google Analytics? Отправка писем BCC с использованием SMTP-сервера? Замените URL-адрес YouTube в тексте кодом HTML-кода Отправить личное сообщение для JQuery Компиляция моего собственного расширения PHP в Windows с помощью Visual Studio 2008 Запись файла .htaccess с php для обновления AJAX с помощью URL-адресов ошибка мыла. Неустранимая ошибка: исключение SoapFault: Не удалось подключиться к хосту Добавить и обновить строку в базе данных Преобразовать список, разделенный запятыми, в Unordered List Zend Framework 2 – Как включить частичную библиотеку как я могу использовать часовой пояс в фильтре даты Twig? Как обрезать и выгружать фотографию с помощью плагина jQuery с помощью php

определить, использует ли пользователь прокси-сервер

Привет, я создаю игру, и я хотел бы узнать, использует ли пользователь прокси. Если они есть, это в основном помещает флаг на их счет. Я могу заставить его сделать флаг и все, но я не совсем уверен, как определить, использует ли пользователь прокси. Я видел, что вы можете использовать заголовки, но я не совсем уверен, что искать и как вы будете проверять, имеет ли пользователь «заголовок» (помимо обычного http_referrer, а что нет).

Любая помощь приветствуется.

редактировать

if ( $_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_X_FORWARDED'] || $_SERVER['HTTP_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP'] || $_SERVER['HTTP_VIA'] || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554)) || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30)) { exit('Proxy detected'); } 

Таким образом, этот код в основном работает, когда пользователь является прокси-сервером, который быстро выходит. Но когда это не так, требуется навсегда загрузить (около 10 секунд). Есть ли способ использовать этот скрипт, но заставить его работать быстрее?

EDIT 2

Изменен тайм-аут fsockopen с 30 до 1, и он работает намного быстрее и все еще работает. Спасибо за предложения всем 🙂

После поиска в Google для php detect http proxies я пришел к следующему:

http://forums.digitalpoint.com/showthread.php?t=58964

http://forums.digitalpoint.com/showthread.php?t=365467

http://www.roscripts.com/PHP_Proxy_Detector-75.html

… и целый ряд других интересных хитов.

РЕДАКТИРОВАТЬ:

AFAIK нет способа обнаружить HTTP-прокси с абсолютной уверенностью или безопасно:

  • Услуги анонимайзера не добавляют соответствующие заголовки к их запросам – на самом деле они удаляют некоторые из них. Вам необходимо сохранить список самых популярных сервисов анонимайзера и их блоки IP-адресов и обнаружить их таким образом. Есть несколько списков в режиме онлайн, которые вы можете использовать, но они далеки от завершения, особенно если вы считаете, что большинство крупных учреждений (интернет-провайдеров, компаний, университетов и т. Д.) Предоставляют прокси-сервер для своих пользователей. Некоторые даже требуют, чтобы их пользователи использовали их.

  • Многие HTTP-прокси настроены так, что они просто пересылают запросы без изменения заголовков.

  • Установки VPN имеют тот же эффект, что и прокси-сервер HTTP, а именно разрешение HTTP-запросов исходить из другого IP-адреса, отличного от того, на котором находится веб-браузер, без его использования.

  • Любой SSH-сервер может использоваться как прокси-сервер SOCKS его пользователями, что на самом деле невозможно обнаружить, поскольку он не является прокси-сервером HTTP.

  • Существует много законных HTTP-прокси, которые не доступны для публики. Например есть HTTP прокси-продукты, которые установлены в домашней сети и обеспечить родительский контроль и сомнительного содержания (порнография, фишинг-сайты и т.д.) фильтрации для всей сети.

Какое злоупотребление вы видите, где может быть полезно обнаружение HTTP-прокси?