Article View: pl.comp.lang.perl
Article #39950Re: Przekierowanie z Potwierdzeniem
From: Szymon Sokół
Date: Thu, 11 Nov 2004 14:09
Date: Thu, 11 Nov 2004 14:09
47 lines
2703 bytes
2703 bytes
On 11 Nov 2004 13:52:03 +0100, debian wrote:
> hmmmm...., coz nie bardzo wychodzi, zainstalowalem, skonfigurowalem squidguard
> ale efekt pozostaje ten sam, komunikat pokazuje sie userowi ale aby zniknal to i
> tak musze recznie go odblokowac a wiec wracam do punktu wyjscia.
No to chyba jednak musisz sklecić samemu. Ogólna idea - jako redirector
podłączasz skrypt:
#!/usr/local/bin/perl
$|=1;
use DB_File;
my $db = "jakiśplik";
tie %IP, 'DB_File', $db, -f $db ? O_READ : O_CREAT|O_READ, 0600, $DB_HASH;
while(<>) {
my ($url, $ip, $ident, $method) = split;
$url = 'http://stronka_z_moim_komunikatem.pl' unless defined $IP{$ip};
print "$url $ip $ident $method\n";
}
untie %IP;
exit 0;
W "jakiśplik" będziesz miał bazę danych z adresami w formacie hash.
Formularz na stronie musi po wciśnięciu OK wywoływać skrypt CGI, który
dopisze do bazy adresów IP/FQDN tego użytkownika:
#!/usr/local/bin/perl
use DB_File;
use CGI;
my $db = "jakiśplik";
tie %IP, 'DB_File', $db, O_RDWR, 0600, $DB_HASH;
$IP{$ENV{'REMOTE_HOST'}} = 1;
untie %IP;
print header(), start_html(),
p("Jakiś banał, że dziękujemy etc."),
end_html();
exit 0;
W zasadzie lepiej byłoby zamiast DB_File użyć DB_File::Lock albo innego
rozwiązania uniemożliwiającego modyfikację bazy równocześnie przez dwóch
użytkowników, ale to już zostawiam jako ćwiczenie dla czytelnika. Po zmianie
komunikatu kasujesz bazę, tzn. jakiśplik.
--
Szymon Sokół (SS316-RIPE) -- Network Manager B
Computer Center, AGH - University of Science and Technology, Cracow, Poland O
http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F
Free speech includes the right not to listen, if not interested -- Heinlein H
Technical Details
Message-ID:
<cmvvc7.3vv27c7.1@sloth.hell.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!agh.edu.pl!news.agh.edu.pl!dustpuppy.sloth.hell.pl!not-for-mailReferences:
<cmkvln.3vvdbgt.1@sloth.hell.pl> <5e1e.000006f6.41936072@newsgate.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!agh.edu.pl!news.agh.edu.pl!dustpuppy.sloth.hell.pl!not-for-mail From: Szymon Sokół <szymon@bastard.operator.from.hell.pl> Newsgroups: pl.comp.lang.perl Subject: Re: Przekierowanie z Potwierdzeniem Date: Thu, 11 Nov 2004 15:09:58 +0100 Organization: Guy Fawkes Society Lines: 47 Message-ID: <cmvvc7.3vv27c7.1@sloth.hell.pl> References: <cmkvln.3vvdbgt.1@sloth.hell.pl> <5e1e.000006f6.41936072@newsgate.onet.pl> NNTP-Posting-Host: chello062179072161.chello.pl Mime-Version: 1.0 X-Trace: galaxy.uci.agh.edu.pl 1100182421 2409 62.179.72.161 (11 Nov 2004 14:13:41 GMT) X-Complaints-To: usenet@uci.agh.edu.pl NNTP-Posting-Date: Thu, 11 Nov 2004 14:13:41 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.14.1 Hamster/2.0.1.3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit