Welke perl-guru maakt een dupeblock checker?

Pagina: 1
Acties:

  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
Wie o wie heeft verstand van PERL en kan een scriptje schrijven dat de dubbel geflushde blocks (naar een pproxy) kan filteren uit de proxy logs??? Met ip en tijd erbij enzo...

Zou bijzonder handig zijn!

Verwijderd

stappel had dit voor me :

cat pproxyrc5* | awk -F, ' { print $4 "\t" $3 "\t" $2 } ' | sort | uniq -d -c

filtert er nix uit maar je krijgt wel een lijst zo

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09-2025
Ook iets voor een win2k gebruiker?

...


  • Chaos
  • Registratie: November 1999
  • Niet online
Op woensdag 10 januari 2001 22:59 schreef dredge het volgende:
stappel had dit voor me :

cat pproxyrc5* | awk -F, ' { print $4 "\t" $3 "\t" $2 } ' | sort | uniq -d -c

filtert er nix uit maar je krijgt wel een lijst zo
Auw.. doe dit nooit als er 350MB aan logs in die directory staat :o.

  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
dat had ik gezien.. maar ik heb NT4
op zich moet het ook met perl kunnen volgens mij...
alleen heb ik te weinig kennis van perl om het zelf te doen...

  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
ff omhoog... was al laat gisteren, misschien dat perl-guru's dan niet wakker zijn ;)

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09-2025
Laten we het hopen.

...


  • [eNeRGy]
  • Registratie: November 1999
  • Laatst online: 24-04-2025
Ik laat mySQL checken op dupes >:)

Verwijderd

Frenzy: Wie o wie heeft verstand van PERL en kan een scriptje schrijven dat de dubbel geflushde blocks (naar een pproxy) kan filteren uit de proxy logs??? Met ip en tijd erbij enzo...

Hoe ziet zo'n log eruit?

/me heeft geen [img=18,18]i/s/rc5.gif[/img]

  • Onno
  • Registratie: Juni 1999
  • Niet online
OUTPUT: Keyblock log
--------------------
The personal proxy will also output so-called "key logs" which record
details of each completed block that is reported to it by a client.
These files are intended for automated processing and so they have a
very regular, comma delimited formatting. Each line of a key log has the
following fields, in order:

date/timestamp of format "mm/dd/yy hh:mm:ss"
IP address of the reporting client
email address of the client
first block number in completed packet (16 hexadecimal digits)
itersize of packet (number of 2^28 blocks)
operating system identifier of client (0=unknown).
cpu type of client (0=unknown).
build number of client (middle segment of version number).

01/15/99 07:39:16,0.0.0.0,rc5@distributed.net,6404AF4970000000,10,0,0,6400

See bottom of this document for a list of OS and CPU types and
numbers.
Overigens lijkt het me dat je toch echt maar 's een }:O moet installeren. ;)

(de meeste dupe checkers die ik heb gezien werken trouwens niet helemaal goed, je moet namelijk niet alleen controleren of het blocknr uit de logregel met die uit een andere regel matcht, je moet kijken of er ergens overlap bestaat tussen de verschillende ranges [blocknr, blocknr+itersize>.)

Verwijderd

Onno: Overigens lijkt het me dat je toch echt maar 's een }:O moet installeren. ;)

Op een laptop die meestal op een accu werkt? Liever niet, dank je. ;)

Je moet niet alleen controleren of het blocknr uit de logregel met die uit een andere regel matcht, je moet kijken of er ergens overlap bestaat tussen de verschillende ranges blocknr - (blocknr+itersize-1).)
code:
1
01/15/99 07:39:16,0.0.0.0,rc5@distributed.net,6404AF4970000000,10,0,0,6400

Dus hier is dat van block 6404AF4970000000 tot en met 6404AF4970000009...

Nog iets meer dat ik moet weten? Alles zit in een file?

Linkje naar zo'n fout script (of Copy & Paste)?

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op een laptop die meestal op een accu werkt? Liever niet, dank je. ;)
Hmmmm ok, da's een goede reden. :)
Dus hier is dat van block 6404AF4970000000 tot en met 6404AF4970000009
Nee, "itersize of packet (number of 2^28 blocks)". 6404AF4970000000 tot 6404AF4A10000000. (naar de achterste 7 cijfers hoef je dus helemaal niet te kijken, die zijn gegarandeerd altijd 0)

Verwijderd

Onno: Nee, "itersize of packet (number of 2^28 blocks)". 6404AF4970000000 tot 6404AF4A10000000. (naar de achterste 7 cijfers hoef je dus helemaal niet te kijken, die zijn gegarandeerd altijd 0)

Ondanks A tot en met F toch stug decimaal optellen... |:( en niet goed lezen...

Ik zal later vandaag er wel naar kijken, ben niet erg helder om het moment (maar dat was je al opgevallen misschien :P).

  • Andy
  • Registratie: Juni 1999
  • Laatst online: 29-01 13:09

Andy

rm -r

je maakt mij niet wijs dat je alleen met een kleptop werkt.....

Overigens draait op mijn kleptop ook een koe, daarvoor heeft Toshiba speciaal zo'n attribuut bijgeleverd (AC-adapter of zo heet het geloof ik)

Wie weet krijg je de smaak van een lekkere BSE-vrije koe nog eens te pakken. Andere optie is een kangeroe; Schijnt ook heel lekker te zijn....

:+

Young child with dreams, dream every dream on your own. When children play, seems like you end up alone. Papa says he'd love to be with you, If he had the time. So you turn on the only friend you can find, there in your mind.. (Neil Diamond -Shilo-)


Verwijderd

Andy: Je maakt mij niet wijs dat je alleen met een kleptop werkt...

En toch is het zo (99% van de tijd). Andere computers waar ik mee werkt zijn niet echt van mij... Heel binnenkort nog een laptop en dan zal ik daar wel een }:O op zetten.

Overigens draait op mijn kleptop ook een koe, daarvoor heeft Toshiba speciaal zo'n attribuut bijgeleverd (AC-adapter of zo heet het geloof ik)

En ik ben vaak niet in de buurt van het bijbehorende inplug punt (stopcontact heet dat geloof ik), dus dan heb ik graag wat langer plezier van mijn accu. ;)

  • Andy
  • Registratie: Juni 1999
  • Laatst online: 29-01 13:09

Andy

rm -r

1% cpu-tijd is ook cpu-tijd >:)

bovendien kun je de koe instellen dat ie slaapt als je kleptop op batterijen werkt


gemak dient de mens :P

Young child with dreams, dream every dream on your own. When children play, seems like you end up alone. Papa says he'd love to be with you, If he had the time. So you turn on the only friend you can find, there in your mind.. (Neil Diamond -Shilo-)


  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
arien: dus jij fixed een perl log dupe checker??

:)

  • Andy
  • Registratie: Juni 1999
  • Laatst online: 29-01 13:09

Andy

rm -r

ja, doet ie, met zijn laptop :P

Young child with dreams, dream every dream on your own. When children play, seems like you end up alone. Papa says he'd love to be with you, If he had the time. So you turn on the only friend you can find, there in your mind.. (Neil Diamond -Shilo-)


  • Mobster
  • Registratie: Februari 2000
  • Laatst online: 07-06-2016

Mobster

Los Alcoholicos

Blijven doorzagen Andy.... ;)

Er is ook een optie in de client waarmee een laptop op pauze gaat (de client dan) indien die op accu over gaat. Best of both worlds....

Toch maar eens een andere sig bedenken :P


  • [eNeRGy]
  • Registratie: November 1999
  • Laatst online: 24-04-2025
Ja, de nieuwere versies zijn daartoe in staat :)

  • s3n
  • Registratie: Juli 2000
  • Laatst online: 07:51

s3n

^^up
We hebben bij de i'r cow last gehad van een dubbele flush van iemand. Om dit voortaan te voorkomen zoeken we dus nog een leuk scriptje.

Iemand??? De proxy draait btw op win2k

Verwijderd

probeer deze eens. (je hebt wel perl nodig, maar dat heb je ook voor ppstats nodig)
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
#!/usr/bin/perl
#

undef %full;

$log = "pproxyrc5all.log";

open (INPUTFILE, '<'."$log");

while (defined($entry = <INPUTFILE> )) {
  chomp($entry);
  $entry =~ tr/A-Z/a-z/;

  ($datetime, $ipaddr, $email, $block, $nkeys, $os, $cpu, $ver, $space) = split(/,/, $entry);

  if (defined($full{$block})) {
    $full{$block} += 1;
    print "!!! Double found (" . $full{$block} . ") : " . $block . " !!! \n",
          " again flushed by " . $email . " from : " . $ipaddr . " on : " . $datetime . "\n";
  } else {
    $full{$block} = 1;
  }
}

close INPUTFILE;

starten met : perl filename
hij vertelt alleen wie de tweede keer geflushed heeft.
hij verwacht in de huidige directory een file pproxyrc5all.log met daarin alle block van de dagen die hij moet vergelijken. deze kan je bijvoorbeeld aanmaken met:
code:
1
2
3
4
type pproxyrc520010101.log >> pproxyrc5all.log
type pproxyrc520010102.log >> pproxyrc5all.log
type pproxyrc520010103.log >> pproxyrc5all.log
type pproxyrc520010104.log >> pproxyrc5all.log

  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
danke wol.. ik heb ondertussen al een brakke oplossing in VB gebouwd die ook werkt, maar een perl script kan ik tenminste in cron flikkeren. :)

  • s3n
  • Registratie: Juli 2000
  • Laatst online: 07:51

s3n

thnx, we zullen hem eens gaan testen

  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
Ik ben zo vrij geweest om het scriptje aan te passen.
Op de manier waarop het script nu de output schrijft, is die gelijk aan de logs van perproxy en kan de dupe logfile dus makkelijk door striplog worden gehaald. Dan krijg je direct de juiste IP adressen en de blokken opgeteld.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
#
undef %full;
$log = "pproxyrc5all.log";
open (INPUTFILE, '<'."$log");
while (defined($entry = <INPUTFILE> )) {
  chomp($entry);
  $entry =~ tr/A-Z/a-z/;
  ($datetime, $ipaddr, $email, $block, $nkeys, $os, $cpu, $ver, $space) = split(/,/, $entry);

  if (defined($full{$block})) {
    $full{$block} += 1;
    print $datetime . "," . $ipaddr . "," . $email . "," . $block . "," . $nkeys . "," . $os . "," . $cpu . ",8010 \n";
  } else {
    $full{$block} = 1;
  }
}
close INPUTFILE;

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 00:38
Ik weet zeker dat ik geen dups heb gemaakt, maar ik krijg er wel zo heeeeeeel veel te zien vanaf mijn ip. Ik verdacht anderen daar namelijk wel van, maar nu heb ik nog steeds geen uitsluitsel. Kortom het script werkt niet voor 100% Het doet wel iets, maar wat...

  • Matthijs Hoekstra
  • Registratie: Januari 2001
  • Laatst online: 20-02 17:17
Op een laptop die meestal op een accu werkt? Liever niet, dank je. ;)
Ik draai het ook op mijn laptop, zodra de power eraf is gaat }:O meteen op pause. Echt goed!

BigM

  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
duke:

dupes krijg je ook als je bijvoorbeeld tijdens het flushen ineens de verbinding breekt oid.
Dus het zou kunnen dat je per ongeluk dupes hebt gekregen

Verwijderd

Frenzy: Dus jij fixed een perl log dupe checker??

Ik wil wel een poging doen. Kan jij (of iemand anders) me een log (als het kan met dubbelen) sturen zodat ik kan testen?

Die logs heten iets van pproxyrcXXXXXXX.log?
Hoe groot kunnen die logs worden? (Oftewel: doe ik het in geheugen of met tijdelijk bestand? Of checken hoe groot het log is en kiezen hoe te verwerken?)
Verder nog iets dat ik moet weten?
Pagina: 1