
10.03.2009, 16:18
|
|
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами:
9423746
Репутация:
2399
|
|
скрипт загрузки изображений на radikal.ru
perl
PHP код:
#! /usr/bin/perl
use IO::Socket::INET;
# forming header's ..
$request1 = "POST http://www.radikal.ru/action.aspx HTTP/1.1\r\n".
"Host: www.radikal.ru\r\n".
"User-Agent: Mozilla/5.0\r\n".
"Connection: close\r\n".
"Referer: http://www.radikal.ru\r\n".
"Content-Type: multipart/form-data; boundary=:boundary:\r\n".
"Content-Length: :length:\r\n\r\n";
$request2 = "--:boundary:\r\n".
"Content-Disposition: form-data; name=\"upload\"\r\n".
"\r\nyes\r\n".
"--:boundary:\r\n".
"Content-Disposition: form-data; name=\"F\"; filename=\":name:\"\r\n".
"Content-Type: image/:type:\r\n\r\n";
# file name,type
$file = shift or die "use: $0 <image>\n";
$fsize = -s $file;
($fname) = $file =~ /([^\/]+)$/;
($ftype) = $fname =~ /\.([^\.]+)$/;
unless($fname && $ftype) { die "[-] invalid filename\n"; }
# read file
open FID, $file or die "[-] failed to open $file!\n";
sysread(FID, $data, $fsize);
close FID;
$boundry = '---------------------------2132365407679';
$request2 =~ s/:boundary:/$boundry/;
$request2 =~ s/:boundary:/$boundry/;
$request2 =~ s/:name:/$fname/;
$request2 =~ s/:type:/$ftype/;
$request2 .= $data."\r\n--$boundry--\r\n";
$length = length($request2);
$request1 =~ s/:boundary:/$boundry/;
$request1 =~ s/:length:/$length/;
$request1 .= $request2;
# create socket
*SOCK = IO::Socket::INET->new(
PeerAddr => "radikal.ru",
PeerPort => 80,
Proto => 'tcp',
Type => SOCK_STREAM)
or die("[-] connection failed!\n");
# read sock answer
$buff = "";
print SOCK $request1;
while($line = <SOCK>){
$buff .= $line;
if ($line=~/<\/html>/) {last;}
}
close SOCK;
# parce
$buff =~ /<a href="http:\/\/(.*)" target="_blank">/;
print 'Link: http://'.$1."\n";
|
|
|