Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Работа php + socks (https://forum.antichat.xyz/showthread.php?t=38811)

gemaglabin 25.04.2007 07:38

Работа php + socks
 
Заметил,что многим лень почитать описание простецкого протокола socks4/socks5 и напиал маленький скриптик,который подконектится к прокси и в случае удачного соединения вернет хендл сокета.Функция socksconnect сама определит какой у вас номер сокса

Использовать так

PHP код:

сокет socksconnect(айпи сокса,порт сокса,юзер,пасс,куда конектимся,порт сервера,таймаут)
пример
$socket 
socksconnect('81.91.1.1','8192','','','ya.ru',80,5

http://underwater.itdefence.ru/projects/proxy.txt

hidden 25.04.2007 08:10

Сознаюсь, не читал)), есть ещё куча всяких интересных вещей чтоб читать.
Кстати, уже не первый раз виду такое, подключаются, запрашивают версию, потом не отключаясь, подключаются снова и тогда уже используют, это так действительно задумано, или всё-же можно выполнить всё за один коннект, включая запрос сразу нескольких страниц?

gemaglabin 25.04.2007 14:14

Теоретически можно дак не со всем прокатит...

_Great_ 25.04.2007 14:42

я точно такое уже выкладывал гдето=\

gemaglabin 25.04.2007 14:42

Точно такое же быть не может это я писал ...

_Great_ 26.04.2007 18:42

ну понятно что не слово в слово) смысл абслютно тот же

Isis 26.04.2007 23:11

_Great_, он мне это пару месяцев назад уже показывал =)
гемо лучший =\хека

Developer 27.04.2007 20:39

Дайте лучше ссылку на описание Socks :)

Автору респект за скрипт, хоть юзать его не буду, но исходники посмотрю ;)

_Great_ 28.04.2007 18:30

на случай если я не выкладывал:

PHP код:

// socks_connect( proxy_host, proxy_port, destination_host, destination_port )
function socks_connect($host$port$dh$dp)
{
  
$f fsockopen($host$port) or die("Can't connect to proxy");
  
$h gethostbyname($dh);
  
preg_match("#(\d+)\.(\d+)\.(\d+)\.(\d+)#"$h$m);
  
fwrite($f"\x05\x01\x00");
  
$r fread($f2);
  if(!( 
ord($r[0])==and ord($r[1])==0))
    die(
"Invalid SOCKS reply");
  
fwrite($f"\x05\x01\x00\x01" chr($m[1]).chr($m[2]).chr($m[3]).chr($m[4]).chr($dp/256).chr($dp%256));
  
$r fread($f10);
  if(!( 
ord($r[0])==and ord($r[1])==0))
    die(
"Invalid SOCKS reply");
  return 
$f;


В закромах Родины нашел у себя. Частенько юзаю


Время: 11:36