Всем привет!
Хочу поднять топик.
В общем, мне необходимо залогиниться на одном из сайтов по протоколу HTTPS. Например, на сайте
www.regnow.com это делается без проблем. Собственно, там вообще сабмита как такового нет, просто идешь по нужной тебе ссылке по такой схеме
https://login:password@www.regnow.com... На сайте же shareit.com такой номер уже не проходит, пытаюсь логиниться, но меня постоянно возвращает на страницу регистрации, хотя ответ сервер выдает такой:
HTTP/1.1 200 OK Connection: Keep-Alive Date: Wed, 11 Aug 2004 14:16:00 GMT Server: Apache Content-Type: text/html; charset=iso-8859-1 Content-Type: text/html; charset=iso-8859-1 Client-Date: Wed, 11 Aug 2004 14:16:03 GMT Client-Peer: 217.65.128.71:443 Client-Response-Num: 1 Client-SSL-Cert-Issuer: /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority Client-SSL-Cert-Subject: /C=DE/ST=Northrhine Westfalia/L=Cologne/O=element 5 Informationstechnologien- und dienstleistungen AG/OU=Network Security/CN=secure.shareit.com Client-SSL-Cipher: DES-CBC3-SHA Client-SSL-Warning: Peer certificate not verified Client-Transfer-Encoding: chunked Keep-Alive: timeout=10, max=100 P3P: policyref="https://secure.element5.com/w3c/p3p.xml", CP="CAO DSP COR ADMo PSA CONo HIS OUR SAMo UNRo LEG UNI" Title: share-it! Control Panel
Код такой:
Код: #!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST GET);
use strict;
use warnings;
print "Content-type: text/html; charset=windows-1251\n\n";
$|++;
my ($uri, $sessid, $random);
my $ua = LWP::UserAgent->new();
my $req = GET "https://secure.shareit.com/shareit/cp/login/index.html";
my $cont = $ua->request($req)->as_string;
if ($cont =~ /.*=(\d+)&.*=(\w+)"/g) {
$uri = "https://secure.shareit.com/shareit/cp/login/index.html?sessionid=$1&random=$2";
($sessid, $random) = ($1, $2);
}
$req = POST $uri,
[PUBLISHER_ID => "Login",
PASSWORD => "Password"];
$cont = $ua->request($req)->as_string;
print $cont;
exit();