From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <415AA1EF.8090301@mail.ru> Date: Wed, 29 Sep 2004 17:52:15 +0600 From: BSW User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.4) Gecko/20030627 X-Accept-Language: ru, en-us, en MIME-Version: 1.0 To: community@altlinux.ru Subject: Re: [Comm] Squid References: <415A6490.60402@zlt.ru> <20040929114957.77cc8095@nikon.office.e-nk.ru> <415A6F10.1030503@zlt.ru> <415A7C12.8000409@mail.ru> <415A81D8.4010005@zlt.ru> In-Reply-To: <415A81D8.4010005@zlt.ru> X-Enigmail-Version: 0.76.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Sep 2004 11:52:17 -0000 Archived-At: List-Archive: List-Post: 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); -==================================================-