Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Как отличить приватную прокси от публичной?


Автор: Рыжий 7.2.2012, 14:07
Добрый день!
Использует ли человек прокси определяю таким образом:
Код

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) || isset($_SERVER['HTTP_X_FORWARDED']) ||
   isset($_SERVER['HTTP_FORWARDED_FOR']) || isset($_SERVER['HTTP_CLIENT_IP']) ||
   isset($_SERVER['HTTP_VIA']) || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))){
    return true;
}


Возможно ли узнать - он использует public proxy или private proxy?

Автор: gta4kv 7.2.2012, 15:56
А можно поинтересоваться, зачем вы проверяете наличие прокси?

Автор: Рыжий 7.2.2012, 16:01
gta4kv, Этот код для партнерской сети. 
Если кто-то кликает на баннер через прокси - есть подозрение, что это один и тот же человек или группа людей скликивают его. 

Если прокси публичный - подозрения больше. Если приватный - меньше.

Автор: Absinthe 7.2.2012, 16:10
Невозможно, т.к. данные прокси не имеют технических различий.

Цитата

in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554)
 Ужас. И что по твоему делает этот код?

Автор: ksnk 7.2.2012, 16:27
Сейчас, когда свободных Ip4 в природе не существует - ВСЕ ползователи будут ходит через прокси. Типичный пример - установлен "прямой"
 Ip, который по проволоке от провайдера заходит в коробочку на стене и она уже раздает WiFi на весь зоопарк домашних устройств и на тот компьютер, с которого приходит посетитель на сайт.
Учитывая, что за прямой адрес приходится отдельно доплачивать - большинство честного народу ходит через прокси провайдера.
Это не говоря о корпоративных прокси, которые хотя бы минимально должны думать о секретности ...

Поискать список публичных прокси можно. Достаточно погуглить по словам "список ip публичных прокси серверов".
Базу требуется постояно обновлять и проверять, так как списки часто меняются.

Автор: krundetz 8.2.2012, 00:40
ksnk, ты NAT описал, а не прокси
Цитата(ksnk @  7.2.2012,  16:27 Найти цитируемый пост)
Сейчас, когда свободных Ip4 в природе не существует

хватит ещё и на этот и на следующий, а с лета начинает вводиться IPv6

Если я правильно понимаю, публичный прокси и закрытый прокси отличаются тем, что закрытый прокси требует авторизации для присоединения к себе, публичный же открыт для всех. Поэтому различать их не имеет смыла.

Автор: gta4kv 8.2.2012, 07:07
krundetz, 

закрытый прокси совсем не должен требовать авторизации, по-этому назовем его по-другому - НЕ публичный прокси,  и это главное его отличие. 

Автор: krundetz 8.2.2012, 11:29
Цитата(gta4kv @  8.2.2012,  07:07 Найти цитируемый пост)
закрытый прокси совсем не должен требовать авторизации, по-этому назовем его по-другому - НЕ публичный прокси,  и это главное его отличие.  

 smile но я сам встречался с проксями которые при обращение к ним требовали авторизации, точнее на запрос к ним выдавали 403 ошибку

Автор: gta4kv 8.2.2012, 14:16
krundetz, Публичная прокся спокойной может быть с авторизацией - потому что её данные в свободном доступе.

Автор: Рыжий 8.2.2012, 14:31
Резюмируя: со стороны сервера нет способов разделить приватную и публичную прокси. 

Единственный выход - иметь список публичный прокси и сверяться с ним. Обновлять его по требованию, как можно чаще. 
Наверное так и сделано в других сайтах (типа linktrust com)
user posted image

Автор: krundetz 9.2.2012, 09:20
Цитата(gta4kv @  8.2.2012,  14:16 Найти цитируемый пост)
krundetz, Публичная прокся спокойной может быть с авторизацией - потому что её данные в свободном доступе.

понял, тогда возникает вопрос, зачем на публичной проксе авторизация?

Автор: Absinthe 9.2.2012, 13:12
krundetz, потому что ранее она была не публичной, но кто-то ее запалил. А ее хозяин еще считает ее приватной smile

Автор: krundetz 9.2.2012, 14:05
Цитата(Absinthe @  9.2.2012,  13:12 Найти цитируемый пост)
krundetz, потому что ранее она была не публичной, но кто-то ее запалил. А ее хозяин еще считает ее приватной

ну да и резко в десятки раз возросший трафик, я как то не заметил, смешно

Автор: gta4kv 9.2.2012, 18:35
krundetz, вполне нормальная практика. чего смешного?
запущена и запущена - не обязательно, что её мониторят ежесекундно.

это бесполезный флейм, кстати  

Автор: 500mhz 9.2.2012, 18:50
Цитата

in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554)

а у меня 2012 порт )))

ps
да кстати, еще есть transparent proxy)))

Автор: Absinthe 9.2.2012, 19:16
500mhz, ошибаешься. Порт сервера != порт клиента.

Автор: Рыжий 9.2.2012, 22:30
500mhz, Будем надеяться что ты попадешь под оставшиеся условия:
Код

(isset($_SERVER['HTTP_X_FORWARDED_FOR']) || isset($_SERVER['HTTP_X_FORWARDED']) ||
isset($_SERVER['HTTP_FORWARDED_FOR']) || isset($_SERVER['HTTP_CLIENT_IP']) ||
isset($_SERVER['HTTP_VIA'])


Использует ли человек прокси нельзя сказать с полной уверенностью. НО есть ли у кого код лучше этого?

Автор: krundetz 10.2.2012, 09:10
Цитата(gta4kv @  9.2.2012,  18:35 Найти цитируемый пост)
это бесполезный флейм, кстати   

хорошо, смотри личку

Автор: Absinthe 10.2.2012, 10:14
Рыжий, и зачем такая проверка тогда нужна?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)