Дикс
23.05.2009, 22:29
отправляю запрос курлом:
$options = array(
CURLOPT_VERBOSE => 1,
CURLOPT_POST => 1, // method POST
CURLOPT_HEADER => 1, // show headers
CURLOPT_NOBODY => 0, // disable body
CURLOPT_POSTFIELDS => array(
'mode' => 'login',
'chal' => 'c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b3884 4ffa11fdf08d87fc4812788a686',
'response' => '',
'user' => 'user',
'password' => 'pass',
'_submit' => 'Login',
'remember_me' => 1
), // post data
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_RETURNTRANSFER => 1, // return response
CURLOPT_SSL_VERIFYPEER => 0, // verify ssl sertificat
CURLOPT_USERAGENT => 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; MRA 4.9 (build 01863))',
CURLOPT_TIMEOUT => 30
);
$process = curl_init('www.site.ru');
curl_setopt_array($process, $options);
$return = curl_exec($process);
curl_close($process);
получаю:
HTTP/1.0 200 OK
Date: Sat, 23 May 2009 18:20:08 GMT
Server: Apache
Set-Cookie: ljuniq=pQGivU2aBITGvBS:1243102808:pgstats0:m0; expires=Wednesday, 22-Jul-2009 18:20:08 GMT; domain=.livejournal.com; path=/
Cache-Control: private, proxy-revalidate
Pragma: no-cache
ETag: "8e941582721e88255b1cfe10285253f4"
Content-length: 18537
Keep-Alive: timeout=30, max=100
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Content-Language: en
Expires: Sat, 23 May 2009 18:20:08 GMT
всего ОДНА кука.
А если отправить через сокеты:
$content = "mode=login&chal=c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b 38844ffa11fdf08d87fc4812788a686&response=&";
$content .= "user=user&password=pass&_submit=Login&remember_me=1";
$req = "POST /login.bml?ret=1 HTTP/1.0\r\n";
$req .= "Accept: */*\r\n";
$req .= "Content-Type: application/x-www-form-urlencoded\r\n";
$req .= "Proxy-Connection: Keep-Alive\r\n";
$req .= "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; MRA 4.9 (build 01863))\r\n";
$req .= "Host: www.livejournal.com\r\n";
$req .= "Content-Length: ".strlen($content)."\r\n";
$req .= "Pragma: no-cache\r\n\r\n";
$req .= $content;
$sock = fsockopen("www.livejournal.com", 80, $errno, $errstr, 30);
получаю:
HTTP/1.0 302 Found
Date: Sat, 23 May 2009 18:21:51 GMT
Server: Apache
Set-Cookie: ljuniq=nijPK3Xw7vMs8Dw:1243102911:pgstats0:m0; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/
Set-Cookie: ljmastersession=v1:u19098670:s8:aEPBJHNrnvY//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=www.livejournal.com; path=/; HttpOnly
Set-Cookie: ljloggedin=u19098670:s8; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: ljloggedin=u19098670:s8; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Set-Cookie: BMLschemepref=horizon; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: BMLschemepref=horizon; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Set-Cookie: langpref=ru/1243102911; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: langpref=ru/1243102911; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Set-Cookie: ljsession=v1:u19098670:s8:t1243101600:g6f5817c274a 95201caedc323f200c8af30ada182//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: ljsession=v1:u19098670:s8:t1243101600:g6f5817c274a 95201caedc323f200c8af30ada182//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Location: http://www.livejournal.com/
Connection: close
Content-Type: text/html; charset=iso-8859-1
при этом CURLOPT_FOLLOWLOCATION вообще ничего не решает. ответы сервера разные, сокетам он говорит "document moved here", а курлу - "username not found"
$options = array(
CURLOPT_VERBOSE => 1,
CURLOPT_POST => 1, // method POST
CURLOPT_HEADER => 1, // show headers
CURLOPT_NOBODY => 0, // disable body
CURLOPT_POSTFIELDS => array(
'mode' => 'login',
'chal' => 'c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b3884 4ffa11fdf08d87fc4812788a686',
'response' => '',
'user' => 'user',
'password' => 'pass',
'_submit' => 'Login',
'remember_me' => 1
), // post data
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_RETURNTRANSFER => 1, // return response
CURLOPT_SSL_VERIFYPEER => 0, // verify ssl sertificat
CURLOPT_USERAGENT => 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; MRA 4.9 (build 01863))',
CURLOPT_TIMEOUT => 30
);
$process = curl_init('www.site.ru');
curl_setopt_array($process, $options);
$return = curl_exec($process);
curl_close($process);
получаю:
HTTP/1.0 200 OK
Date: Sat, 23 May 2009 18:20:08 GMT
Server: Apache
Set-Cookie: ljuniq=pQGivU2aBITGvBS:1243102808:pgstats0:m0; expires=Wednesday, 22-Jul-2009 18:20:08 GMT; domain=.livejournal.com; path=/
Cache-Control: private, proxy-revalidate
Pragma: no-cache
ETag: "8e941582721e88255b1cfe10285253f4"
Content-length: 18537
Keep-Alive: timeout=30, max=100
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Content-Language: en
Expires: Sat, 23 May 2009 18:20:08 GMT
всего ОДНА кука.
А если отправить через сокеты:
$content = "mode=login&chal=c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b 38844ffa11fdf08d87fc4812788a686&response=&";
$content .= "user=user&password=pass&_submit=Login&remember_me=1";
$req = "POST /login.bml?ret=1 HTTP/1.0\r\n";
$req .= "Accept: */*\r\n";
$req .= "Content-Type: application/x-www-form-urlencoded\r\n";
$req .= "Proxy-Connection: Keep-Alive\r\n";
$req .= "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; MRA 4.9 (build 01863))\r\n";
$req .= "Host: www.livejournal.com\r\n";
$req .= "Content-Length: ".strlen($content)."\r\n";
$req .= "Pragma: no-cache\r\n\r\n";
$req .= $content;
$sock = fsockopen("www.livejournal.com", 80, $errno, $errstr, 30);
получаю:
HTTP/1.0 302 Found
Date: Sat, 23 May 2009 18:21:51 GMT
Server: Apache
Set-Cookie: ljuniq=nijPK3Xw7vMs8Dw:1243102911:pgstats0:m0; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/
Set-Cookie: ljmastersession=v1:u19098670:s8:aEPBJHNrnvY//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=www.livejournal.com; path=/; HttpOnly
Set-Cookie: ljloggedin=u19098670:s8; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: ljloggedin=u19098670:s8; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Set-Cookie: BMLschemepref=horizon; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: BMLschemepref=horizon; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Set-Cookie: langpref=ru/1243102911; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: langpref=ru/1243102911; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Set-Cookie: ljsession=v1:u19098670:s8:t1243101600:g6f5817c274a 95201caedc323f200c8af30ada182//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=livejournal.com; path=/; HttpOnly
Set-Cookie: ljsession=v1:u19098670:s8:t1243101600:g6f5817c274a 95201caedc323f200c8af30ada182//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; expires=Wednesday, 22-Jul-2009 18:21:51 GMT; domain=.livejournal.com; path=/; HttpOnly
Location: http://www.livejournal.com/
Connection: close
Content-Type: text/html; charset=iso-8859-1
при этом CURLOPT_FOLLOWLOCATION вообще ничего не решает. ответы сервера разные, сокетам он говорит "document moved here", а курлу - "username not found"