Proxy Cheker

Rus

Guest
Proxy Cheker

Очень хочу накодить сабж! Как я понимаю вся изюменка в том, что на сервер посылается определенный пакет и анализируется ответ. Но это ж совсем в общих чертах. А вот если конкретнее.. в общем помогить стать на правильный путь
 

SiMM

Новичок
> Но это ж совсем в общих чертах
А больше ничего и не нужно.
[m]fsockopen[/m] || [m]CURL[/m]
 

DiMA

php.spb.ru
Команда форума
на своем сайте вешаешь скрипт, записывающий в файл переменные $host и $port

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

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

nerezus

Вселенский отказник
три функции авторства меня ;)

PHP:
function hex2bin($dump){
$dump=str_replace(' ', '', $dump);
$res='';
$dumplen=strlen($dump);
for ($i=0; $i<$dumplen; $i+=2){
$bt=$dump[$i].$dump[$i+1];
$res=$res.chr(hexdec($bt));}
return $res; }

function hexlen($s) {
$s=str_replace(' ', '', $s);
if (strlen($s)/2 <16) $v='0';
if (strlen($s)/2 <256) $v.='0';
if (strlen($s)/2 <4096) $v.='0';
$v.=dechex(strlen($s)/2);
return $v; }

function sockcheck( $sockip, $sockport, $timeout=10) {
$sres=0;
$f=fsockopen($sockip, $sockport, $ern, $ers, $timeout);
if (!$f) {
return 0;
} else {
$s=hex2bin('05 02 00 02');
fputs ($f, $s);
$g=fgets ($f,2);
$list= bin2hex($g);
if (($g[0]==hex2bin('04')) or ($g[0]==hex2bin('05'))) $sres=1;
fclose($f); 
return $sres; }
}
оцениваем :)

-~{}~ 10.06.05 22:27:

это для сокс5

Инфу брал тут:

RFC 1928 - SOCKS Protocol Version 5
http://rfc.net/rfc1928.html

RFC 1929 - Username/Password Authentication for SOCKS V5
http://rfc.net/rfc1929.html
 

Rus

Guest
Спасибо всем! Завтра со свежей головой сяду обдумывать все это и тогда будет еще много вопросов ;)
 

nerezus

Вселенский отказник
поступила просьба прокомментировать в приват...

hex2bin переводит по 2 16ричных символа в 1 октет
(эквивалент на перле s/(.{2})/pack('c',hex($1))/eg)

hexlen вычисляет длину такой "строки" в 16ричном виде и форме 2 октета(4 16ричных символа)
например длина hexlen('05 02 00 02') будет 0004
для чекера не необходима, в примере не используется

sockcheck проверяет сокс5 прокси, подробности в RFC
 

nerezus

Вселенский отказник
=)
ну знаю, когда писал(3 месяца назад, я только циклы и знал)
просто принцип "не трогай, пока работает" зачастую оправдан :)
 

Rus

Guest
а есть разница как проверять http(s) и socks? можно ли определить что проверяет пользователь?
 

Rus

Guest
вот к этому и вел ;) так а как определить что именно проверяет пользователь?

-~{}~ 11.06.05 12:26:

блин, кажется я пост до конца не дочитал :)

-~{}~ 12.06.05 15:07:

Вопрос немного не в тему. Если ли книги (не электронные) в которых и про TCP/IP почитать можно и про взаимодействие с ними с помощю PHP. Ну если нет, то на худой конец можно и электронные, но только на русском языке. Спасибо
 
Сверху