| |
#!/usr/bin/perl -w
if ((!defined $ARGV[0]) || ($ARGV[0] =~ /^-h/i)) {
print << '__HELP_END__';
This script sends banners to www.kuku.ru. Usage:
./set_banner.pl <image_filename>
__HELP_END__
exit(1);
}
my $filename = shift @ARGV;
my %accounts = (
'vovka' => ['123321', 13]
);
my ($login, $data);
while (($login,$data) = each %accounts) {
my %params = (
image_filename => $filename,
login => $login,
password => $data->[0],
profile => $data->[1]
);
#print join ":", %params;
send_banner_to_kuku_ru(%params);
}
exit(0);
sub send_banner_to_kuku_ru(%)
{
my %params = @_;
open FILE, $params{image_filename} or die "Can't open imagefile: $!";
binmode(FILE);
my $image_data = <FILE>;
close FILE;
%params = (%params, (
host => 'www.kuku.ru',
script_uri => 'account/addimage.html',
url => 'www.rrrr.ru',
image_data => $image_data,
ratio => '0',
alt => 'Новости на www.rrrr.ru'
));
use IO::Socket;
my $socket = IO::Socket::INET->new(
PeerAddr => $params{host},
PeerPort => 80,
Proto => 'tcp'
)
or die "Can't connect: $!";
my $body = ''. << "__END_OF_BODY__";
-----------------------------7d02d3301bfa0846
Content-Disposition: form-data; name="user"
$params{login}
-----------------------------7d02d3301bfa0846
Content-Disposition: form-data; name="password"
$params{password}
-----------------------------7d02d3301bfa0846
Content-Disposition: form-data; name="image"; filename="$params{image_filename}"
Content-Type: image/gif
Content-Transfer-Encoding: binary
$params{image_data}
-----------------------------7d02d3301bfa0846
Content-Disposition: form-data; name="href"
$params{url}
-----------------------------7d02d3301bfa0846
Content-Disposition: form-data; name="profile"
$params{profile}
-----------------------------7d02d3301bfa0846
Content-Disposition: form-data; name="ratio"
$params{ratio}
-----------------------------7d02d3301bfa0846
Content-Disposition: form-data; name="alt"
$params{alt}
__END_OF_BODY__
$body .= '-----------------------------7d02d3301bfa0846--';
my $content_length = length($body);
my $header = '' . << "__END_OF_HEADER__";
POST $params{script_uri} HTTP/1.1
Accept: */*
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)
Content-Length: $content_length
Content-Type: multipart/form-data; boundary=---------------------------7d02d3301bfa0846
Host: $params{host}
__END_OF_HEADER__
print $header . "\n" . $body;
print $socket $header . "\n\n" . $body;
while (<$socket>) {
print;
}
close $socket;
}
1;
Скрипт написан Максимом Дуниным
|