PDA

Просмотр полной версии : Post запрос через прокси (PHP)


RaiDeRz
04.06.2007, 00:23
Как сделать Post запрос через прокси на Php )
Дайте пример

DIAgen
04.06.2007, 01:02
Вот держи

$proxy = '127.0.0.1';
$port = 80;

@$fsock = fsockopen($proxy ,$port,$errnum,$errstr,5);
if (!$fsock)
die ("Увы, или прокся дохлая или истекло время ожидания ответа от нее...(((");
else {

$POST_to_GET = "to=123&for=123";
$len = strlen($POST_GET);
$request = "POST http://site.ru/index.php HTTP/1.0\n";
$request .="Host: site.ru\n";
$request .="Content-Type: application/x-www-form-urlencoded\n";
$request .="Content-Length: $len \r\n\r\n";
$request .=$POST_to_GET."\r\n";

fwrite ($fsock,$request);
$head = '';
while(!feof($fsock))
{
$fgets=fgets($fsock,500);
if ($fgets=="\r\n" || $fgets=="\n")
{break;} $head.=$fgets;}
$content = '';
while(!feof($fsock))
{$content .=fread($fsock,2048);}
fclose($fsock);

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

RaiDeRz
04.06.2007, 01:02
А куда тогда вписывать хост и порт куда надо подключиться?

Isis
04.06.2007, 01:05
<?
$proxy = "1.1.1.1";
$port = "8080";

$fp = fsockopen($proxy, $port, $errno, $errstr, 30);
if($fp)
{
$data = "post=ok";
$headers = "POST $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n";
$headers .= "Connection: close\r\n\r\n";

$fw = fwrite($fp, $headers.$data);
fclose($fp);
} else die;
?>

Isis
04.06.2007, 01:09
А куда тогда вписывать хост и порт куда надо подключиться?
Прокси и порт в $proxy & $port :)
Хост в заголовках передавай "Host: www.bla.ru \r\n"

RaiDeRz
04.06.2007, 01:12
А вот как сделать так чтобы через эту проксю можно было подключиться на другой порт не 80 ?

Isis
04.06.2007, 01:15
А вот как сделать так чтобы через эту проксю можно было подключиться на другой порт не 80 ?
В переменной $port поменять )

Dr.Frank
04.06.2007, 17:51
В переменной $port поменять )

Здесь скорее всего имелось ввиду, чтоб через 80-ый порт проксика подключиться на другой порт(не 80) какого-то ресурса

kys
05.06.2007, 14:31
А вот как сделать так чтобы через эту проксю можно было подключиться на другой порт не 80
Так:
POST http://site:port HTTP/1.1
т.е. после названия сайта через двоеточие номер порта

SIBON
06.06.2007, 11:34
а как считать ответ сервера на этот запрос?

kys
06.06.2007, 15:07
а как считать ответ сервера на этот запрос?
в каком смысле как?
после посылки запроса просто читаешь из того же сокета и все. выше в примере это есть.