PDA

Просмотр полной версии : сurl переделать через сокеты


crackmail
25.01.2010, 00:46
как сделать чтобы работало через сокеты?м?

// cURL
$c = curl_init('ссылочка);
$headers = array(
"Host: ссылочка",
"Authorization: Basic ".base64_encode($login.':'.$password),
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4",
"Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
"Accept-Language: en-gb,en;q=0.5",
"Accept-Encoding: text",
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Date: ".date(DATE_RFC822)
);

curl_setopt($c, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($c, CURLOPT_COOKIESESSION, true);
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($c, CURLOPT_UNRESTRICTED_AUTH, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 1);

$str = curl_exec($c);
curl_close($c);

Solker
25.01.2010, 03:19
А сейчас оно на собаках работает?
Тебе надо заменить сurl на чистые хеадары по https?

Ставишь снифер на 80 порт (443 https).
Открываешь нужный сайт и смотришь какие браузер посылает заголовки.
Копируешь в скрипт, вызываешь.

crackmail
25.01.2010, 11:29
я ваще в этом всем не алё , мне просто нужно чтоб скрипт работал через сокеты , никаких курлов

rushter
25.01.2010, 11:37
А зачем ? Не найти нормальный хостинг ?

crackmail
25.01.2010, 12:08
хостинг не причем , нужен скрипт на сокетах

Solker
25.01.2010, 16:09
Напиши ссылку с которой на сокетах надо что-то слить, там проще намного будет.

crackmail
25.01.2010, 23:14
$host = 'web-defence.ru';
$script = 'index.php';
$headers = array(
"GET ".$script." HTTP/1.1",
"Host: ".$host,
"Authorization: Basic ".base64_encode($login.':'.$password),

"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4",

"Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
"Accept-Language: en-gb,en;q=0.5",
"Accept-Encoding: text",

"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Date: ".date(DATE_RFC822)
);
$sck = fsockopen ($host, 443, $errno, $errstr, 30);
if( $sck )
{
$header = implode("\n",$headers)."\n\n";
fwrite($sck, $header);
$str = '';
while( !feof($sck) )
$str.= fgets($sck);
fclose($sck);
}
else
die('Error # '.$errno.': '.$errstr);

почему-то такой код не пашет
не приходит ответ от сервака , мб где-то ошибка?
протокол https

Kaimi
26.01.2010, 03:05
Попробуй перед адресом хоста писать ssl://
Если не заработает, то облом

krypt3r
26.01.2010, 09:04
$sck = fsockopen ("ssl://$host", 443, $errno, $errstr, 30);
...
$header = implode ("\r\n",$headers) . "\r\n\r\n";