![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2002
Адрес: под мостом
Сообщений: 18
|
Хочится узнать как при помощи сокетов отправлять запросы на сервер и от веты назапросы хедеры анализаровать... как вообшще формируются хедеры и как получать хдер отсылаемый сервером...
__________________
Любить это просто ... |
|
|||||
|
Регистрация: Jun 1999
Адрес: Russia, Samara
Сообщений: 1,138
|
HI !
а что значит запросы ? :) просто гет или постом что-то еще нужно отправить ? а вообще все легко вот например старый пример посылки постом (через прокси) чего-нибудь :) <?
//полный урл к вызываемому скрипту
$URI = "http://site.com/script.php";
// прокси
$proxy_host = "148.74.255.104";
// порт прокси
$proxy_port = "80";
$post_string = "tralala=mimo&tralala2=ops";
// если скрипт лежит в запароленном каталоге указываем логин и пароль
$user="";
$pass="";
//все заголовки задаются чтобы тяжело было отличить от настоящего браузера, но без
//большинства из них все равно будет работать :)
$fp_timeout = 30;
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$httpversion = "HTTP/1.0";
$http_method = "POST";
$content_type = "application/x-www-form-urlencoded";
$accept = "*/*";
$accept_language = "en-us;q=0.5";
// пытаемся соединиться
if($fp = fsockopen($proxy_host,$proxy_port,&$errno,&$errstr,$fp_timeout)) {
// соединение установлено
$URI_PARTS = parse_url($URI);
$host=$URI_PARTS["host"];
$headers = $http_method." ".$URI." ".$httpversion."\n";
$headers .= "User-Agent: ".$agent."\n";
$headers .= "Host: ".$host."\n";
$headers .= "Accept: ".$accept."\n";
$headers .= "Accept-Language: ".$accept_language."\n";
$headers .= "Referer: http://".$host."/\n";
$headers .= "Content-type: $content_type\n";
$headers .= "Content-length: ".strlen($post_string)."\n";
if(!empty($user) || !empty($pass)) {
$headers .= "Authorization: BASIC ".base64_encode($user.":".$pass)."\n";
}
$headers .= "\n".$post_string;
fputs ($fp,$headers);
// если не нужно смотреть ответ сервера, можно выключить весь этот while :)
while(!feof($fp)){
$resp=fgets($fp,80);
$retstr.=$resp;
echo "$resp<br>";
}
fclose($fp);
} else {
// соединиться не удалось
echo "connection failed ($errno)";
}
?>
fsockopen($proxy_host,$proxy_port пишем fsockopen($host,80 :) Последний раз редактировалось Ilya; 10.08.2002 в 05:30. |
![]() |
Часовой пояс GMT +4, время: 23:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|