Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№106-04-2007 20:01:09

Testing001
Участник
 
Группа: Members
Зарегистрирован: 04-04-2007
Сообщений: 28
UA: IE 6.0

Прокси или нет.

Добрый день.

Вопрос простой: как узнать пользователь вошел на мой сайт через прокси или просто?

Есть вар-т анализировать заголовки и переменные сервера $_SERVER.

//////////////////

proxy URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100 ).

Значит ли это, что юзер который зашел на мой сайт с адреса TCP://proxy... - использует прокси?

Если да то просто беру этот путь из $_SERVER[ "<что-то там>" ], вырезаю первые 3 символа и сравниваю....

<?php

$ip = (empty($_SERVER['HTTP_X_FORWARDED_FOR']) || $_SERVER['HTTP_X_FORWARDED_FOR'] == 'unkown') ? 0 : $_SERVER['HTTP_X_FORWARDED_FOR'];

if (!$ip || $ip != $_SERVER['REMOTE_ADDR'])) {
echo 'Proxy? ';
} else {
echo 'Norm';
}

?>

правда прокси вряд ли мечтают оставить тебе HTTP_X_FORWARDED_FOR?

P.S. ТАМ ГДЕ СМАЙЛ ПРОСТО : и ) слились, то есть часть кода

////////////////

Если HTTP_X_FORWARDED_FOR не существует или равен unkown, то пишем в переменную 0, если нет, то пишем IP адрес.

Далее проверяем переменную. Если равна 0 - выводим "Прокси". Если HTTP_X_FORWARDED_FOR != REMOTE_ADDR, то тоже прокси, только не прозрачный. НЕ прокси только тогда, когда HTTP_X_FORWARDED_FOR == REMOTE_ADDR, причем оба индекса существуют.

Отсутствует

 

№206-04-2007 20:35:20

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341
UA: Minefield 3.0

Re: Прокси или нет.

Что-то я индекса 'HTTP_X_FORWARDED_FOR' не нашёл в документации по php5. Что это?


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№306-04-2007 20:43:47

Testing001
Участник
 
Группа: Members
Зарегистрирован: 04-04-2007
Сообщений: 28
UA: IE 6.0

Re: Прокси или нет.

Ты там этого и не найдешь...

Ты думаешь в док-тации php5 можно найти инфу насчет прокси-пробивалки?

Отредактировано Testing001 (06-04-2007 20:47:20)

Отсутствует

 

№416-09-2007 11:39:45

Testing001
Участник
 
Группа: Members
Зарегистрирован: 04-04-2007
Сообщений: 28
UA: IE 6.0

Re: Прокси или нет.

1). Не все прокси оставляют за собой заголовки, которые бысплатно кидают, то ЛИЧНО Я тестил, многие бесплатные оставляют.
2). В основном берут платные, а это гораздо хуже, потому что они уже не оставляют, а значит отловить на PHP такие уже нельзя.
3). Все означает не %100 результат.


PS
Если боитесь взломщиков, то не волнуйтесь, они работют с high-anonymous proxy, за которые платят, и которые не раскрывают свои заголовки. Поэтому мое мнеие - просто создать очень хорошую структуру для Сайта.

Отсутствует

 

№516-09-2007 12:48:50

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785

Re: Прокси или нет.

Testing001
был недавно у меня проект один. именно таким способом проверял юзеров на прокси.
ещё можно попробовать подсоединиться через fsockopen к данному ip по определённом диапазону портов (прокси-протов) и почитать поток. если читает - значит прокси.

Добавлено Sun Sep 16 12:58:21 2007 :

НЕ прокси только тогда, когда HTTP_X_FORWARDED_FOR == REMOTE_ADDR, причем оба индекса существуют.

а вот это не всегда верно. на сколько мне известно, HTTP_X_FORWARDED_FOR не существует в большинстве случаев, но у всех прозрачных прокси он есть.

Отсутствует

 

№616-09-2007 12:58:23

lakostis
Administrator
 
Группа: Administrators
Откуда: /dev/urandom
Зарегистрирован: 07-10-2004
Сообщений: 1302
UA: Firefox 2.0
Веб-сайт

Re: Прокси или нет.

Testing001
Можете посмотреть пример реализации, сделанный на нашем форуме (его код общедоступен). Функция называется get_remote_address()


Все микробы умрут

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]