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


Автор: godsgame 13.2.2007, 21:39
Добрый день.

Пробовал искать но не нашел.

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

Заранее спасибо

Автор: Mal Hack 13.2.2007, 22:51
Анализировать заголовки и переменные сервера $_SERVER.
В поиск по слову "Прокси"

Автор: godsgame 13.2.2007, 23:25
Mal Hack, 

конкретного ответа ответа на вопрос не нашел, а так вообще тяжело что-то написать, потому что я толком то и не знаю, что такое прокси.. не говоря уже о сокетах и т.д...

В хелпе одном нашел типа:
Цитата

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



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

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

П.С: что-то мне подсказывает, что ерунду написал..



Автор: Mal Hack 13.2.2007, 23:29
Прокси - посредник. Покупаешь ты товар на рынке, а он этот товар у кого-то тоже купил. Вот он - прокси.


Цитата(godsgame @  13.2.2007,  23:25 Найти цитируемый пост)
конкретного ответа ответа на вопрос не нашел, а так вообще тяжело что-то написать, потому что я толком то и не знаю, что такое прокси.. не говоря уже о сокетах и т.д...

Ищи про определение IP адреса. При решении этой задачи борются с прокси...

Автор: nerezus 14.2.2007, 06:57
Цитата

Вопрос простой: как узнать пользователь вошел на мой сайт через прокси или просто?
 Никак.
Этого определить нельзя.

Автор: Mal Hack 14.2.2007, 10:32
Цитата(nerezus @  14.2.2007,  06:57 Найти цитируемый пост)
 Никак.
Этого определить нельзя. 

Можно, но не со 100% вероятностью.

Автор: nerezus 14.2.2007, 11:31
Цитата

Можно, но не со 100% вероятностью. 
 И как же?
Ты максимум в паре случаев из ста сможешь )

А предполагать надо самое хучшее и не надеяться, что все будут юзать только http проксики, да к тому же и с заголовками типа forwarded for и т.д.

Автор: godsgame 14.2.2007, 12:12
nerezus, 

мне бы хоть какой-то определить...

Автор: nerezus 14.2.2007, 13:58
godsgame, для чего?

Добавлено @ 13:59 
P.S. Тем более, что в дополнительный заголовок можно поставить абсолютно любой IP )

Автор: godsgame 14.2.2007, 18:22
а какие заголовки характерны для прокси и значения переменных $_SERVER["..."]? где про это можно прочитать? 

Автор: nerezus 14.2.2007, 18:42
я уже не помню, установи проксомитрон(proxomitron) и посмотри в фильтрах.
Но тебе это не поможет. Скажем так: тебе это не надо.

Автор: Mal Hack 14.2.2007, 19:48
Цитата(nerezus @  14.2.2007,  11:31 Найти цитируемый пост)
И как же?

я вроде бы описал выше...
Еще анализировать whois.

Автор: nerezus 15.2.2007, 10:49
Mal Hack, описано выше? всмысле, воспользоваться поиском?

А если ты про 
Цитата
Анализировать заголовки и переменные сервера $_SERVER.
, то это не поможет.

Вероятность того, что прокси-сервер добавит свои заголовки, минимальна. И то это для HTTP-проксей.
Socks-прокси же никаких заголовков не добавляют.

Автор: mishaSL 15.2.2007, 19:04
Посмотрите следующию информацию по этой теме, это вариант определения не через whois, а по заголовкам:
http://vip.simz.ru/index.shtml?printenv

Особенно обратите внимание на этот абзац:
Код

Если вас в первую очередь интересует анонимность, то первое поле, на которое следует обратить внимание: REMOTE_ADDR. Это ip-адрес, с которого был послан запрос на сервер. Если вы используете http-прокси сервер, то в этом поле будет указан его ip-адрес. Чтобы убедиться что вы используете анонимный http прокси-сервер, то следующим полем на которое необходимо посмотреть будет: HTTP_X_FORWARDED_FOR. Если http прокси-сервер не является анонимным, то в этом поле будет указан ip-адрес, с которого пришел запрос на прокси-сервер, то есть если вы используете один прокси-сервер - в этом поле будет ваш реальный адрес. Удаленный хост определяется как прокси, если в запросе указаны дополнительные поля HTTP_VIA, HTTP_X_FORWARDED_FOR, HTTP_CACHE_CONTROL. Если эти поля пустые, то www-сервер не может определить, используете ли вы прокси-сервер или нет.

Если вы используете Socks-сервер, то в поле REMOTE_ADDR должен быть адрес Socks-сервера, если это так, то "анонимность" работает нормально. Также если вы используете для анонимности Socks-сервер, поля HTTP_VIA, HTTP_X_FORWARDED_FOR, HTTP_CACHE_CONTROL - пустые

Автор: nerezus 15.2.2007, 19:22
Цитата

определения не через whois
 А как ты через whois определишь? Мне вот интересно.

Цитата

а по заголовкам
 Все socks и большинство http проксей не меняют и не добавляют свои заголовки.

Касательно цитаты:
Цитата

HTTP_X_FORWARDED_FOR. Если http прокси-сервер не является анонимным, то в этом поле будет указан ip-адрес
 Сплошные "если" ;) Если честно, то его не вставляет больше половины бесплатных проксей.
И, естественно, ни один из платных.

Цитата

Если эти поля пустые, то www-сервер не может определить, используете ли вы прокси-сервер или нет.
 Вот. Я это сразу и сказал. А они практически всегда будут пустыми.

Поэтому ответ однозначный: нельзя за исключением редких случаев.

Автор: mishaSL 15.2.2007, 19:54
Я не занимался этой задачей, т.к. незачем мне это было. Но вот есть еще интересная информация по этой теме http://podonki.irkutsk.ru/?id=48&cid=2716

Автор: CyClon 22.2.2007, 16:33
Мой вариант.

Код
<?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';
}

?>

Автор: nerezus 25.2.2007, 01:04
CyClon,  А почему ты думаешь, что прокси мечтают оставить тебе HTTP_X_FORWARDED_FOR? Это не так, таких ощутимое меньшинство.

Кстати что-то логика твоего скрипта какая-то странная  smile 

Автор: Testing001 30.3.2007, 14:12
А нужно ли через php прокси определять?

Я зашел на один сайт и очень стандартный phpbb (2.0.10) с php-nuke, а прокси мою пробивал, разве вот сайт с готовыми скриптами может прбить прокси? Особенно phpbb c nuke

Может, тогда у хостера на сервер есть прога, которая прокси пробивает?

А что мою проксю пробили это точно!!!!!

Автор: Testing001 5.4.2007, 11:54
во-первых нужно уточнить, что конкретно вы хотите определить. у многих стоят различные локальные прокси на их машинах, или например доступ к интернету на какой-нибудь фирме осуществляется с помощью прокси сервера -- отличить поведение такого "честного прокси" от так называемых "transparent public proxy servers" которые используются для сокрытия своего айпи, обхода различных банов и т.п. малореально, если не сказать невозможно

да и собственно определить является ли какой-то адрес, адресом одного из таких прокси серверов на основе только лишь данных из $_SERVER и пр. грубо говоря нельзя

Автор: CyClon 5.4.2007, 13:57
Цитата
CyClon,  А почему ты думаешь, что прокси мечтают оставить тебе HTTP_X_FORWARDED_FOR? Это не так, таких ощутимое меньшинство.

Кстати что-то логика твоего скрипта какая-то странная  :hehe  


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

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

Автор: Testing001 5.4.2007, 16:46
CyClon

прокси сервер может передать любое значение этой переменной )) и если этот прокси-сервер является "анонимным", то эта переменная будет просто дублировать переменную REMOTE_ADDR и скрипт будет думать что это не прокси

Автор: Testing001 6.4.2007, 20:09
CyClon

суть скрипта я понял - мне не надо объяснять что он делает )) я ж тебе говорю, эту переменную устанавливает сам прокси и чаще всего прокси в HTTP_X_FORWARDED_FOR пишет свой адрес а не адрес типа который эту проксю юзает

Автор: nerezus 6.4.2007, 20:55
Цитата

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

Далее проверяем переменную. Если равна 0 - выводим "Прокси".
 А теперь:
1)прочитай, что ты написал;
2) подумай;
3) если предыдущее действие закончилось успехом, то найди ошибку в логике.

P.S. Если не найдешь, то могу и объяснить.

Автор: godsgame 7.4.2007, 10:57
nerezus, 

объясни мне

Автор: nerezus 7.4.2007, 22:01
godsgame, по его логике выходит, что если HTTP_X_FORWARDED_FOR не существует, то это прокси.
Это абсолютно неверно.

И вообще, наверное надо закрыть тему: определить использвание прокси нельзя. Да и не нужно.

Автор: Testing001 8.4.2007, 00:57
Почему ненужно?

Одно дело четсные прокси пробить почти невозможно, а другое пробивать прокси, которые только от бана, чтобы просмотреть форум или тд. и т.п.

Ты не выражай свое мнение под общее, я например, не хочу тему закрывать, как участник

P.S. Четсные прокси хрен 2-а пробьешь, а вот прокси, которые помогут просто утйи от бана желательно научиться пробивать, так как это толко поможет отбить сразу ряд таких умников, а если похулиганит на сервере, то можно и четсную проксю забанить, а те прокси тогда будут пробиваться, и накроется медным тазом обход бана

Автор: nerezus 8.4.2007, 10:12
Цитата

а вот прокси, которые помогут просто утйи от бана желательно научиться пробивать, так как


1) Что такое «нечестность» прокси? В чем она выражается?
2) Как ты сможешь отличить «честные» прокси от «нечестных»?
3) Как ты отличишь использование «нечестного» прокси от неиспользования прокси вообще?

Автор: Testing001 8.4.2007, 11:03
Нечестные/честные прокси- это мой сленг, не обращай внимания!

Повоторюсь, наверное вы пропустили мои сообщения

у многих стоят различные локальные прокси на их машинах, или например доступ к интернету на какой-нибудь фирме осуществляется с помощью прокси сервера - отличить поведение такого "честного прокси" (так я его назвал) от так называемых "transparent public proxy servers" которые используются для сокрытия своего айпи, обхода различных банов и т.п. малореально, если не сказать невозможно

Если честную проксю ты забанаил, а "transparent public proxy servers" ты пробил (а их списки очень большие, значит будет очень много обходов), то это очень усложнит задачу

НО есть ИДЕЯ

вот к тебе приходит тип с какого-то айпи, а ты чтобы проверить прокси это или нет, посылаешь на этот айпи запрос как на проксю )) если она тебе вернет запрошенную страницу через себя то это прокси )))

Автор: nerezus 8.4.2007, 11:11
Цитата

НО есть ИДЕЯ
 Плохая идея.
Допустим я пришел к тебе с a.b.c.d
Твои действия?

Автор: Testing001 8.4.2007, 19:01
хай. ну я имел в виду что-то такое. "приходит тип с айпи абсд" )) ты думаешь, а не прокси ли этот абсд, давай проверим, если он прокси то скорей всего можно посылать на порты 3128 или 8080 или 80 запрос, чтобы этот прокси вернул какую-нить страницу в инете. например www.google.com, или какую-нить страницу с твоего сайта. и если абсд действительно это сделает то естественно это прокси сервер -- вот что имелось в виду

P.S. Идея - хорошая

Автор: nerezus 8.4.2007, 20:19
Цитата

то скорей всего можно посылать на порты 3128 или 8080 или 80 запрос
 
неплохо. 3 порта из 65536

Цитата

P.S. Идея - хорошая 

вероятность 3/65536 - это меньше, чем 1/1(или хотя бы 99/100)

Автор: Testing001 8.4.2007, 20:32
Ну нет слов?

Ну что вот эти прокси, которые для обхода созданы ВСЕ ПОРТЫ ЮЗАЮТ????

Ты че, редкость, когда кроме 3128 или 8080 или 80

P.S.

Помни, что это касается нечестных прокси!!!!

Автор: nerezus 8.4.2007, 20:44
Цитата

которые для обхода созданы ВСЕ ПОРТЫ ЮЗАЮТ????
 Да. По крайней мере те, которыми я пользовался: диапазон портов 1k-64k

Цитата

Ты че, редкость, когда кроме 3128 или 8080 или 80
 И не мечтай. Или ты судишь по всяким левым проксям, отсканенным тобою по диапазону IP с этих портов?
А ведб многие просто либо поднимают на серваках свои прокси, либо покупают на проксисервисах.
И так поступает большинство моих знакомых.

Цитата

Помни, что это касается нечестных прокси!!!!
 Сходи на любой проксисервис и прочитай описания.

Автор: Testing001 8.4.2007, 21:00
Чего мне читать, я сам юзал прокси для обхода бана, там только стандартная порты, и ни ожной честной прокси!

А про честную, я и не говорю

Мы рассматриваем, как нечестные пробить

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

P.S.

Ты наверное забываешь суть темы, если начнм посыать друг друга что-либо читать, что решать проблему мы не будем, а только потеряем время

Автор: nerezus 8.4.2007, 21:30
Цитата

там только стандартная порты
 Но это не значит, что у всех будут такие же.
Мне стандартные порты попадались ОЧЕНЬ редко.

Цитата

Мы не говорим, про нормальные прокси, извини
 Почему же? Давай поговорим о нормальных. Т.к. для обхода бана и т.д. будут пользоваться ими. А стоят они недорого - от 30 в месяц.

Автор: CyClon 11.4.2007, 14:43
По моему маленькому опыту работы с прокси:
1. Если HTTP_X_FORWARDED_FOR не существует или == 'unkown' - анонимный прокси
2. Если HTTP_X_FORWARDED_FOR <> REMOTE_ADDR - прокси

Не согласны - напишите сами скрипт и докажите, что вы правы ;)

Автор: Testing001 12.4.2007, 17:21
я же уже говорил по-моему это все
HTTP_X_FORWARDED_FOR = REMOTE_ADDR - вот это анонимный прокси
HTTP_X_FORWARDED_FOR <> REMOTE_ADDR - прозрачный прокси
а если прокси подменяет римоут адр то он называется "искажающий"
вот как раз анонимные прокси и юзают чтобы проги думали что это вобще не прокси

Автор: nerezus 12.4.2007, 21:22
Цитата

Не согласны - напишите сами скрипт и докажите, что вы правы ;) 
 Несогласен.
Вот моя версия скрипта(100% правильная):
Код

?>Невозможно определить факта использования прокси.<?php


Добавлено через 1 минуту и 18 секунд
Цитата

HTTP_X_FORWARDED_FOR = REMOTE_ADDR - вот это анонимный прокси
 А если никакого HTTP_X_FORWARDED_FOR нету? Тогда для этих проксей ты напишешь "не используется прокси"?

Автор: Testing001 13.4.2007, 09:05
ну, начнем с того, что нечестные прокси можно определить, а вот определить честные

nerezus

Я не приобретал четсные прокси, я понимаю, есть такой же список прокси, только честных

Потом все таки ты уже пропустил с мопмощью моего способа определяется, только портов очень много, если платные прокси, но тем не менее можно!

Потом godsgame спрашивал, как опред. хотя бы нечестные, а нечестные определить можно

Потом не думаю, что очень много есть желающих потратить 30 доллаов на прокси, правда только если в этом есть необходимость, причем очень важная, а просто покупать - нет смысла, это 30 долларов лучше на что-нибудь другое потратить

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

P.S.

nerezus 

Какое кол-во портов, да собственно только сами порты, тогда напиши

Потом, ты сам сказал, что давай насчет четсных прокси поговорим, а насчет нечестных - не надо.

 А если никакого HTTP_X_FORWARDED_FOR нету? Тогда для этих проксей ты напишешь "не используется прокси"? 

А я не свою мысль разъяснял, я поправлял CyClon,  а собственно HTTP_X_FORWARDED_FOR прокси не особо желают за собой оставлять

Автор: nerezus 13.4.2007, 18:11
Цитата

что нечестные прокси можно определить
 
Цитата

а нечестные определить можно



Как это можно? Ну так вот, способ в студию. 

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

Автор: Testing001 13.4.2007, 19:56
Да, ты что, бред, что же у меня нечестные прокси пробиваются? Со сканом портов

Ты либо себе глаза не протер

Что ты споришь, что?

Тут с самого начала смотрят, как пробить нечестные хотя бы, не говоря про платные, а ты все продолжаешь, я тебе написал, что отпишусь

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

Автор: nerezus 14.4.2007, 08:47
Testing001, 
Цитата

Да, ты что, бред, что же у меня нечестные прокси пробиваются? Со сканом портов
слушай сюда, ты что, сканишь все 64к портов? А сколько времени это выходит?
Давай проведем эксперимент: делай скрипт, а я захожу к тебе с прокси.

Цитата

Ты либо себе глаза не протер
 Оскорбляем, значит? В отличии от тебя я не только вижу, что пишу, но еще и понимаю. И с прокси я стати работал неоднократно чтобы знать, что нельзя определить ее использование. Никак.

Цитата

Что ты споришь, что?
 Потомучто ты хрень несешь, что прокси могут только определенные порты юзать.

Цитата

ты свое мнение не высказывай, тут тебе не дискуссионный форум, а форум для решений проблем
 1) С какой стати я должен спрашивать у тебя разрешение, чтобы ответить?
Тем более, что место решения проблемы ты пишешь херню типа (просканировать 64к портов и попытаться на них законектиться)

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

Вопрос на засыпку: Ты говоришь, что соединяешься через прокси. Что значит последовательность байтов 0x05 0x00. Это просто так, вдруг даже не надо будет мне на твой скрипт заходить, если ты не знаешь ответа, а просто морочишь голову.

Автор: CyClon 14.4.2007, 12:31
Цитата
HTTP_X_FORWARDED_FOR = REMOTE_ADDR - вот это анонимный прокси
HTTP_X_FORWARDED_FOR <> REMOTE_ADDR - прозрачный прокси


Издеваешься?

Анонимный, это когда не видно исходного адрса вроде как... Не видно исходного адреса когда нету переменой HTTP_X_FORWARDED_FOR или, чаще всего, она равна 'unkown'. Соответственно:

Код
if (empty($_SERVER['HTTP_X_FORWARDED_FOR']) || $_SERVER['HTTP_X_FPRWARDED_FOR'] == 'unkown') {
    echo 'Анонимный прокси, так как не известен HTTP_x_FORWARDED_FOR или HTTP_X_FORWARDED_FOR равен unkown';
}


Если HTTP_X_FORWARDED_FOR известен, но не совпадает с REMOTE_ADDR (Т.к. REMOTE_ADDR - получается адрес прокси, а HTTP_X_FORWARDED_FOR - это ваш адрес), то значит это прокси, но не прозрачный.

Код
if ($_SERVER['HTTP_X_FORWARDED_FOR'] != $_SERVER['REMOT_ADDR']) {
    echo 'Прокси, не анонимный, т.к. известен исходный адрес';
} else {
    echo 'Нету прокси';
}


ЗЫ: Все написано с мысылью, что HTTP_X_FORWARDED_FOR можно только скрыть, подменить нельзя... Может я и нуб, но я не вижу от других реально работающих примеров.

Автор: Testing001 14.4.2007, 14:19
nerezus

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

А про платные прокси я ничего и не говорю, ты еще раз прочти, в отличии от того, чтобы свое время тратить ради повторения твоей мысли про 64к портов, это у платных до фига портов, я зайди на бесплатный список, там половина не работает, а остальные если работают, то порты одинаковые

203.178.133.10: 3127 Planetlab/CoDeeN proxy Apr-14, 04:07 Japan 
155.98.35.3: 3124 Planetlab/CoDeeN proxy Apr-14, 10:09 United States 
202.189.126.85: 3127 Planetlab/CoDeeN proxy Apr-14, 10:33 Hong Kong 
193.174.67.187: 3127 Planetlab/CoDeeN proxy Apr-14, 10:05 Germany 
210.107.249.50: 3124 Planetlab/CoDeeN proxy Apr-11, 12:00 Korea, Republic of 
210.107.249.50: 3128 Planetlab/CoDeeN proxy Apr-11, 22:20 Korea, Republic of 
129.186.205.71: 3128 Planetlab/CoDeeN proxy Apr-13, 23:08 United States 
128.192.101.218: 3127 Planetlab/CoDeeN proxy Apr-10, 10:07 United States 
164.107.127.12: 3128 Planetlab/CoDeeN proxy Apr-13, 13:53 United States 
164.107.127.12: 3127 Planetlab/CoDeeN proxy Apr-14, 08:27 United States 
129.93.68.55: 3128 Planetlab/CoDeeN proxy Apr-13, 23:08 United States 
192.33.90.196: 3124 Planetlab/CoDeeN proxy Apr-09, 13:47 Switzerland 
128.84.154.45: 3124 Planetlab/CoDeeN proxy Apr-12, 10:26 United States 
129.137.253.253: 3124 Planetlab/CoDeeN proxy Apr-12, 19:37 United States 
212.201.44.74: 3127 Planetlab/CoDeeN proxy Apr-13, 08:51 Germany 
129.240.67.16: 3127 Planetlab/CoDeeN proxy Apr-13, 14:37 Norway 
143.107.111.195: 3124 Planetlab/CoDeeN proxy Apr-13, 23:59 Brazil 
171.66.3.181: 3127 Planetlab/CoDeeN proxy Apr-05, 11:57 United States 
132.252.152.193: 3124 Planetlab/CoDeeN proxy Apr-13, 19:46 Germany 
128.112.139.96: 3127 Planetlab/CoDeeN proxy Apr-14, 08:27 United States 
156.17.10.52: 3128 Planetlab/CoDeeN proxy Apr-13, 19:45 Poland 
171.66.3.181: 3128 Planetlab/CoDeeN proxy Apr-05, 10:06 United States 
130.88.203.27: 3128 Planetlab/CoDeeN proxy Apr-14, 08:27 United Kingdom 
203.178.133.10: 3124 Planetlab/CoDeeN proxy Apr-13, 20:57 Japan 
143.107.111.194: 3124 Planetlab/CoDeeN proxy Apr-14, 00:35 Brazil 
129.24.17.70: 3124 Planetlab/CoDeeN proxy Apr-14, 01:25 United States 
129.137.253.253: 3128 Planetlab/CoDeeN proxy Apr-14, 08:27 United States 
202.189.126.86: 3128 Planetlab/CoDeeN proxy Apr-13, 04:32 Hong Kong 
128.112.139.96: 3128 Planetlab/CoDeeN proxy Apr-14, 04:06 United States 
129.24.17.70: 3128 Planetlab/CoDeeN proxy Apr-14, 04:08 United States 
129.108.202.11: 3127 Planetlab/CoDeeN proxy Apr-12, 19:55 United States 
194.36.10.156: 3127 Planetlab/CoDeeN proxy Apr-14, 09:14 United Kingdom 
129.137.253.253: 3127 Planetlab/CoDeeN proxy Apr-13, 04:08 United States 
128.112.139.108: 3124 Planetlab/CoDeeN proxy Apr-14, 08:27 United States 
89.238.130.7: 4321 high-anonymous proxy server Apr-14, 10:37 Germany 
131.215.45.72: 3128 high-anonymous proxy server Apr-14, 10:42 United States 
124.33.234.199: 80 high-anonymous proxy server Apr-14, 10:41 Japan 
222.191.251.51: 80 high-anonymous proxy server Apr-14, 10:45 China 
128.134.184.114: 8080 high-anonymous proxy server Apr-14, 10:46 Korea, Republic of 
200.67.71.248: 3128 high-anonymous proxy server Apr-14, 10:44 Mexico 
85.154.167.138: 80 high-anonymous proxy server Apr-13, 22:02 Oman 
85.154.167.134: 80 high-anonymous proxy server Apr-13, 22:02 Oman 
193.174.67.186: 3124 high-anonymous proxy server Apr-13, 22:01 Germany 
69.210.224.84: 444 high-anonymous proxy server Apr-13, 22:57 United States 
82.178.91.108: 80 high-anonymous proxy server Apr-13, 23:01 Oman 
193.174.67.186: 3128 high-anonymous proxy server Apr-13, 21:33 Germany 
64.161.10.7: 3128 high-anonymous proxy server Apr-14, 03:19 United States 
64.13.227.50: 80 high-anonymous proxy server Apr-14, 08:27 United States 
218.180.104.70: 8080 high-anonymous proxy server Apr-13, 23:19 Japan 
82.178.89.5: 80 high-anonymous proxy server Apr-13, 22:17 Oman 
66.98.164.87: 7799 high-anonymous proxy server Apr-13, 22:38 United States 
61.95.204.172: 8080 high-anonymous proxy server Apr-14, 01:18 India 
24.8.45.74: 7212 high-anonymous proxy server Apr-13, 23:43 United States 
128.31.1.12: 8888 high-anonymous proxy server Apr-14, 08:29 United States 
85.154.167.142: 80 high-anonymous proxy server Apr-13, 22:22 Oman 
85.154.167.140: 80 high-anonymous proxy server Apr-13, 22:22 Oman 
85.154.167.152: 80 high-anonymous proxy server Apr-13, 22:21 Oman 
82.178.95.197: 80 high-anonymous proxy server Apr-13, 22:20 Oman 
82.178.89.204: 80 high-anonymous proxy server Apr-13, 22:19 Oman 
85.154.167.129: 80 high-anonymous proxy server Apr-13, 22:18 Oman 
124.47.167.6: 3128 high-anonymous proxy server Apr-13, 22:57 India 
85.154.167.141: 80 high-anonymous proxy server Apr-13, 20:18 Oman 
85.154.167.137: 80 high-anonymous proxy server Apr-13, 20:18 Oman 
192.17.239.251: 8888 high-anonymous proxy server Apr-13, 22:31 United States 
85.154.167.135: 80 high-anonymous proxy server Apr-13, 20:17 Oman 
131.247.2.242: 3127 high-anonymous proxy server Apr-13, 21:35 United States 
85.154.167.130: 80 high-anonymous proxy server Apr-13, 20:17 Oman 
82.178.92.239: 80 high-anonymous proxy server Apr-13, 20:16 Oman
196.11.241.194: 553 high-anonymous proxy server Apr-14, 10:44 South Africa 


P.S.

Ой как много портов, прямо от 1-64к,  как много всего: 3124, 3127, 3128, 553, 80, 8088, 8888, 7799, 4321, 7212, 444


Ты сам ты видишь, что пишешь, все про 64к продолжаешь, если ты все про платные прокси, ТО ЧИТАЙ научись внимательно, я уже написал, что про платные ничего не говорю

Я тебе совет дал, а не разрешение, не надо мои слова перефразировать под себя, я тебе разрешение и запрет не раздавал, я всего лишь сказал, что считаешь, что нельзя пробить, то и не пиши, потому тебе какая разница от этого?

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

Автор: nerezus 14.4.2007, 22:22
в твоем списке нету ни одного socks даже.
К примеру, я пользуюсь только ими.

Кстати, насчет 05 00 ты не ответил =) Рассказать, что это?

Цитата

подменить нельзя...
 Можно. Просто сам передавай его(header добавить в запросы), а проксик наверняка передаст тот, что передал ты. Для всех socks проксей это 100% верно. И для большинства обычных.

Автор: Testing001 24.4.2007, 22:27
Привожу полный код функции, являющийся рабочим.

Код

// взять ip клиента под прокси
function get_real_IP() {
    global $HTTP_SERVER_VARS;

    //1st ip =  HTTP_X_FORWARDED (or REMOTE_ADDR); 2nd ip = HTTP_X_FORWARDED_FOR;
    if($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']) { // case 1: proxy is defined
        $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'], $array);
        if ($b && (count($array)>=1)) {
          $b = substr($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'], 0, 3);
          if ($b == '192') { //case 1.A 1nd ip is local - get 2nd ip
              //if ($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] == '217.9.147.44') { //case 1.A kirov proxy (for ex., dial-up) - get 1st ip
              $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $HTTP_SERVER_VARS['HTTP_X_FORWARDED'], $arrayb);
              $c = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $HTTP_SERVER_VARS['REMOTE_ADDR'], $arrayc);
              if ($b && (count($arrayb)>=1)) { // 1.A.1 HTTP_X_FORWARDED
                return $arrayb[0];
              } elseif ($c && (count($arrayc)>=1)) { // 1.A.2 REMOTE_ADDRESS
                return $arrayc[0];
              }
              //            }
          } else { //case 1.C no more excepts - get 2nd ip
            return $array[0];
          }
        }
    }

    if($HTTP_SERVER_VARS['HTTP_X_FORWARDED']) { // case 2: HTTP_X_FORWARDED is defined; no proxy
        $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $HTTP_SERVER_VARS['HTTP_X_FORWARDED'], $arrayb);
        $c = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $HTTP_SERVER_VARS['REMOTE_ADDR'], $arrayc);
        if ($b && (count($arrayb)>=1)) { // 2.1 HTTP_X_FORWARDED
          return $arrayb[0];
        } elseif ($c && (count($arrayc)>=1)) { // 2.2 REMOTE_ADDRESS
          return $arrayc[0];
        }
    }
    if($HTTP_SERVER_VARS['HTTP_CLIENT_IP']) { // case 1.E: proxy && HTTP_CLIENT_IP is defined
        $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $HTTP_SERVER_VARS['HTTP_CLIENT_IP'], $array);
        if ($b && (count($array)>=1)) { // first IP in the list
            return $array[0];
        }
    }
//    print_r ($_GET["IP"]); print " 1";
    return ($_GET["IP"]);
}

Автор: nerezus 25.4.2007, 06:43
Testing001, ну блин, хоть бы ошибки перед постингом темы исправил бы )

Код

Notice: Undefined index: HTTP_X_FORWARDED_FOR in C:\Server\www\prox.php on line 8
Notice: Undefined index: HTTP_X_FORWARDED in C:\Server\www\prox.php on line 28
Notice: Undefined index: HTTP_CLIENT_IP in C:\Server\www\prox.php on line 37
Notice: Undefined index: IP in C:\Server\www\prox.php on line 44


Код

echo 'IP is "' . get_real_IP() . '"';

ответ:
Код

IP is ""



Ты бы код сначала писать научился =)
Давай повторим, только на этот раз ты выложишь рабочую версию.
И ожешь даже просто на своем хосте повесить.

Автор: WolfON 25.4.2007, 17:34
nerezus, сдается мне, что у тебя стоит php 5, а про различия между суперглобальными массивами в 5 и 4 ты судя по всему и не знаешь

используйте
Код

$_SERVER['REMOTE_ADDR']

Автор: nerezus 25.4.2007, 18:13
Цитата

а про различия между суперглобальными массивами в 5 и 4 ты судя по всему и не знаешь
 Советую внимательно покурить(обоим) http://de.php.net/manual/ru/tutorial.oldcode.php

Автор: Testing001 25.4.2007, 18:29
nerezus

Извини, что написал не подумав, да спасибо за ссылку  smile 

Автор: GZep 25.4.2007, 22:25
Ну, все просто... надо вместо $HTTP_SERVER_VARS использовать $_SERVER. И все будет работать...
Testing001, зря ты так, ибо nerezus дал ссылку на неплохой материал, которой не все знают.

Автор: godsgame 6.5.2007, 22:34
GZep, 

странно... заменил, но все-равно не пашет.

Цитата

Notice: Undefined index: HTTP_X_FORWARDED_FOR in z:\home\fortest.ru\www\proxy.php on line 9

Notice: Undefined index: HTTP_X_FORWARDED in z:\home\fortest.ru\www\proxy.php on line 29

Notice: Undefined index: HTTP_CLIENT_IP in z:\home\fortest.ru\www\proxy.php on line 38

Notice: Undefined index: IP in z:\home\fortest.ru\www\proxy.php on line 46



Код

<?php
// взять ip клиента под прокси
function get_real_IP()
{
    //global $HTTP_SERVER_VARS;
    global $_SERVER;

    //1st ip =  HTTP_X_FORWARDED (or REMOTE_ADDR); 2nd ip = HTTP_X_FORWARDED_FOR;
    if($_SERVER['HTTP_X_FORWARDED_FOR']) { // case 1: proxy is defined
        $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $_SERVER['HTTP_X_FORWARDED_FOR'], $array);
        if ($b && (count($array)>=1)) {
          $b = substr($_SERVER['HTTP_X_FORWARDED_FOR'], 0, 3);
          if ($b == '192') { //case 1.A 1nd ip is local - get 2nd ip
              //if ($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] == '217.9.147.44') { //case 1.A kirov proxy (for ex., dial-up) - get 1st ip
              $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $_SERVER['HTTP_X_FORWARDED'], $arrayb);
              $c = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $_SERVER['REMOTE_ADDR'], $arrayc);
              if ($b && (count($arrayb)>=1)) { // 1.A.1 HTTP_X_FORWARDED
                return $arrayb[0];
              } elseif ($c && (count($arrayc)>=1)) { // 1.A.2 REMOTE_ADDRESS
                return $arrayc[0];
              }
              //            }
          } else { //case 1.C no more excepts - get 2nd ip
            return $array[0];
          }
        }
    }

    if($_SERVER['HTTP_X_FORWARDED']) { // case 2: HTTP_X_FORWARDED is defined; no proxy
        $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $_SERVER['HTTP_X_FORWARDED'], $arrayb);
        $c = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $_SERVER['REMOTE_ADDR'], $arrayc);
        if ($b && (count($arrayb)>=1)) { // 2.1 HTTP_X_FORWARDED
          return $arrayb[0];
        } elseif ($c && (count($arrayc)>=1)) { // 2.2 REMOTE_ADDRESS
          return $arrayc[0];
        }
    }
    if($_SERVER['HTTP_CLIENT_IP']) { // case 1.E: proxy && HTTP_CLIENT_IP is defined
        $b = ereg ("^([0-9]{1,3}\.){3,3}[0-9]{1,3}", $_SERVER['HTTP_CLIENT_IP'], $array);
        if ($b && (count($array)>=1)) { // first IP in the list
            return $array[0];
        }
    }
    
    // print_r ($_GET["IP"]); print " 1";
    return ($_GET["IP"]);

}
echo get_real_IP();

?>


Автор: CyClon 15.5.2007, 22:12
Цитата
Notice: Undefined index: HTTP_X_FORWARDED_FOR in z:\home\fortest.ru\www\proxy.php on line 9

Notice: Undefined index: HTTP_X_FORWARDED in z:\home\fortest.ru\www\proxy.php on line 29

Notice: Undefined index: HTTP_CLIENT_IP in z:\home\fortest.ru\www\proxy.php on line 38

Notice: Undefined index: IP in z:\home\fortest.ru\www\proxy.php on line 46


Потому что чаще всего известен только один из этих индексов.

Автор: nerezus 16.5.2007, 09:39
Цитата

Потому что чаще всего известен только один из этих индексов.
 Ну это еще знание синтаксиса PHP автором скрипта не отменяет и его не оправдывает. Есть такие прикоьные штуки типа isset() ;)

Автор: Testing001 16.5.2007, 14:32
можно через Java, но только если уже отключат Java, то уже не работает этот вар-т, но тем не менее не все ее и отключают



Ну это еще знание синтаксиса PHP автором скрипта не отменяет и его не оправдывает. Есть такие прикоьные штуки типа isset() ;) 

мог бы и сам отредактировать, во всяком случае, в этой теме уже 2-ое показывали свои скрипты

Автор: nerezus 16.5.2007, 15:03
Цитата

можно через Java, но только если уже отключат Java, то уже не работает этот вар-т, но тем не менее не все ее и отключают

1) В панели управления можно задать проксик для джавы
2) Если у человека хватило знаний заюзать проксик, то джаву он отключать умеет )

Цитата

мог бы и сам отредактировать
 НИКОГДА не редактирую чужие КРИВЫЕ скрипты.
Ну правда Sajax был исключением )

Автор: Testing001 16.5.2007, 15:52
1) В панели управления можно задать проксик для джавы
2) Если у человека хватило знаний заюзать проксик, то джаву он отключать умеет )

я не про это, конечно java отключит, я про то, что даже зная, как отключать человек может все равно может не отключить, потом если сайт полностью основан на java, то смысла влезать на него уже нет с отключенной java )))

Автор: nerezus 16.5.2007, 16:53
Цитата

потом если сайт полностью основан на java
 мм, за всю свою жизнь видел лишь один такой сайт, это была браузерная 3D онлайн игрушка  smile  smile 

Автор: Testing001 16.5.2007, 18:28
 smile этого вполне достаточно

Автор: nerezus 16.5.2007, 18:34
Testing001, ну тогда читай предыдущее мой сообщение.

Автор: Testing001 16.5.2007, 20:04
К сожалению этот проксик для java еще так ломается

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


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

Автор: Testing001 16.9.2007, 17:27
В теме увидел:
Код

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

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

Добавлено через 14 минут и 40 секунд
asd

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