User since
2003-08-04
14371
Artikel
ModeratorIn
[quote=Crian,30.09.2005, 13:23]Aber ich habe das Gefühl, ich missioniere in diesem Punkt taube Ohren ;)[/quote]
Kannst ja zu Strat und mir kommen ( z.B. TUPC, The Unheard Perl Coders...) *g*
User since
2003-08-04
5246
Artikel
ModeratorIn
[quote=kristian,30.09.2005, 10:00]Funktionieren Signale mitlerweile auf Dosen?[/quote]
nein, nicht wirklich; nur auf und kann man sich verlassen (ok, sind ja eigentlich auch keine Signale). SIGCHLD weiss ich nicht, da ich unter Windows nie fork benuetze...\n\n
<!--EDIT|Strat|1128082150-->
User since
2003-08-21
2613
Artikel
ModeratorIn
[quote=Strat,30.09.2005, 14:08]nur auf und kann man sich verlassen[/quote]
Ich nehme an, Du sprichst von
__DIE__ und
__WARN__\n\n
<!--EDIT|betterworld|1128088121-->
User since
2003-08-04
2536
Artikel
ModeratorIn
warum eigentlich selbst schreiben, wenn LWP doch mit dem timeout im allgemeinen ganz wunderbar zurecht kommt..
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
dann sollte die connection nach 10 sekunden failen und
sollte gesetzt sein
User since
2003-08-04
12208
Artikel
Admin1
[quote=betterworld,30.09.2005, 15:45]Ich nehme an, Du sprichst von
__DIE__ und
__WARN__[/quote]
guter trick. hier nochmal zum nachlesen:
[tt]_[/tt][tt]_DIE_[/tt][tt]_[/tt]
/me fügt das in opera notes hinzu...
edit: typo\n\n
<!--EDIT|pq|1128184600-->
User since
2005-04-14
684
Artikel
BenutzerIn
Hallo
@Jan
> warum eigentlich selbst schreiben, wenn LWP doch mit dem
> timeout im allgemeinen ganz wunderbar zurecht kommt..
Weil es böse Buben geben könnte und der Timeout von LWP nicht atomar ist.
Nimmst du diesen Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl
$|++;
use strict;
use diagnostics;
my $target = $ARGV[0];
my $agent = $ARGV[1];
use LWP;
print "This is libwww-perl-$LWP::VERSION\n";
my $start_time = time();
my $ua = LWP::UserAgent->new();
$ua->agent($agent);
$ua->timeout(10);
my $req = HTTP::Request->new(GET => $target);
my $res = $ua->request($req);
if ($res->is_success) {
print $res->content() . "\n";
}else{
print $res->status_line() . "\n";
}
my $end_time = time();
print 'Runtime: ' . ($end_time - $start_time) . "\n";
ich denke mal der ist ok, speicherst das Ding als bot ab, machst das Teil ausführbar und rufst das Ganze so auf:
./bot '
http://lapostecoste.de/cgi-bin/bot_catcher.cgi' 'GoodBot'
und dann
./bot '
http://lapostecoste.de/cgi-bin/bot_catcher.cgi' 'BadBot'
da kannst du aber locker Kaffe trinken gehen....
Gruß Kristian
Edit:
http://lapostecoste.de/botcatcher/log.txt\n\n
<!--EDIT|kristian|1128184815-->
User since
2005-04-14
684
Artikel
BenutzerIn
Hallo
@Crian
Habe ich den Code denn falsch falsch verstanden?
Ich dachte zuletzt, dort wird auf einer Nixe ein HTTP-Header generiert. Da bin ich der Meinung das "\r\n" genau richtig ist.
Gruss Kristian\n\n
<!--EDIT|kristian|1128184220-->
User since
2003-11-26
97
Artikel
BenutzerIn
Quote
Naja, eine Teergrube ist nicht wirklich ein Problem von LWP, das kann Dir mit jedem anderen Bot auch passieren.
User since
2005-04-14
684
Artikel
BenutzerIn
Hallo
@Cremator
Erstmal will ich ich zum Thema "Teergrube" klarstellen, dass dies eine Geschichte ist, die Herr Lutz Donnerhacke (<-Hoshi, tiefe Verneigung) erfunden hat.
Ansonsten hast du recht, es gibt in der Theorie keinen Bot der da imun ist.
In der Praxis sieht es etwas anders aus. Der, der die Teergrube betreibt, wird dies verantworten müssen. Ich habe da auch so meine Probleme. Mein eigener Bot darf im Grunde genommen nicht resistent sein, wenn ich der Betreiber wäre. Als Betreiber (Executive) kann man nicht der sein, der die Regeln aufstellt (Legislative) und somit wird das Ganze schon recht krumm.
In der Praxis werden davon also nur wirkliche "BadBots" betroffen sein, die eine noch zu findende Legislative benennt.
Gruss Kristian