Просмотр полной версии : Post запрос через прокси (PHP)
Как сделать Post запрос через прокси на Php )
Дайте пример
Вот держи
$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);
Только там может не много косячить из-за зоголовка, ну я думаю ты сможешь сделать все супер, ты же не маленький...)))
А куда тогда вписывать хост и порт куда надо подключиться?
<?
$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;
?>
А куда тогда вписывать хост и порт куда надо подключиться?
Прокси и порт в $proxy & $port :)
Хост в заголовках передавай "Host: www.bla.ru \r\n"
А вот как сделать так чтобы через эту проксю можно было подключиться на другой порт не 80 ?
А вот как сделать так чтобы через эту проксю можно было подключиться на другой порт не 80 ?
В переменной $port поменять )
Dr.Frank
04.06.2007, 17:51
В переменной $port поменять )
Здесь скорее всего имелось ввиду, чтоб через 80-ый порт проксика подключиться на другой порт(не 80) какого-то ресурса
А вот как сделать так чтобы через эту проксю можно было подключиться на другой порт не 80
Так:
POST http://site:port HTTP/1.1
т.е. после названия сайта через двоеточие номер порта
а как считать ответ сервера на этот запрос?
а как считать ответ сервера на этот запрос?
в каком смысле как?
после посылки запроса просто читаешь из того же сокета и все. выше в примере это есть.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot