🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #39950

Re: Przekierowanie z Potwierdzeniem

#39950
From: Szymon Sokół
Date: Thu, 11 Nov 2004 14:09
47 lines
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-mail
References: <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