[Comm] Squid

BSW =?iso-8859-1?q?bsw71_=CE=C1_mail=2Eru?=
Ср Сен 29 15:52:15 MSD 2004


max wrote:
> А есть автоматическая "ломалка"? Она то мне и нужна, чтоб казала что 
> вообще в кеше лежит и позволяла взять это что-то от туда.
Вот же народ ленивый пошел! :-)

Вот тебе. Умеет следующее:
- показывать исходный URL (ключ -u);
- показывать тип (ключ -t);
- выдавать нагора тело (ключ -b).
Никаких проверок. Вызывать так:
`script [-t] [-u] [-b] <1234 >coolgirl.jpg`, где 1234 - файл из 
сквидового кеша.
Как скормить весь кеш целиком - man find.

-==================================================-
#!/usr/bin/perl

# читаем параметры ком.строки
while ($p = shift)
{
     if ("$p" eq "-u") { $url = 1; }     # показывать URL
     elsif ("$p" eq "-t") { $type = 1; } # показывать тип контента
     elsif ("$p" eq "-b") { $body = 1; } # отдать тело
     else { print "Плохие параметры\n"; exit; };
};

$tmp = $/;

# читаем длину заголовка
read(STDIN, $buf, 5);
(undef, $headlen) = unpack("HIH*", $buf);

# читаем URL
seek(STDIN, 0x3C, SEEK_SET);
$/ = "\0";
$URL = <>;
chomp $URL;

# читаем заголовок HTTP
seek(STDIN, $headlen, SEEK_SET);
$/ = "\r\n\r\n";
$HTTP = <>;
chomp $HTTP;

$/ = $tmp;

$err = 1;
if ($url)
{
     print "$URL\n";
     $err = 0;
};

if ($type)
{
     $HTTP =~ /^Content-Type:\s(.+)\r\n/m;
     print "$1\n";
     $err = 0;
};

if ($body)
{
     undef $/;
     print <>;
     $/ = $tmp;
     $err = 0;
};

exit($err);
-==================================================-




Подробная информация о списке рассылки community