doppelte IP's aus einer zeile filtern

Post Reply
Message
Author
brum

doppelte IP's aus einer zeile filtern

#1 Post by brum »

Liebe Freunde des Perl, awk & Co,

gibt es eine Möglichkeit doppelte IP-Adressen aus einem Textdokument zu filtern, welche in einer Zeile geschrieben wurden? (Allow from in apache-config)

Trenner ist Leerzeichen.
Die Bezeichnung treten auf als

Code: Select all

88.88.88.88   88.88.88.*   88.88.88.0/24
Viele Grüße

brum

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#2 Post by komsomolze »

Ein Suchmuster für eine dezimale IP

Code: Select all

'[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[^ ]+'   sei hier   "A"
Zuerst mal eine Liste der doppelten IP aufstellen:

Code: Select all

cat LOG  |  sed 's@^.* \(A \).* \(A \).*$@\1 \2@'  >  Temp-Datei
# soll aus Zeilen mit mehreren IP eine Zeile mit nur zwei IP machen. 
# (Bis auf das letzte "*" sind nach "A" und "*" Leerzeichen im Ausdruck) 
Jetzt greppe ich nach genau diesen Zeilen und gebe nur die aus, die doppelt gleich sind:

Code: Select all

cat  Temp-Datei  |  \
egrep "^A A$"  |  awk '$1==$2 {print $1}'  |  sort  |  uniq  >  Liste-Datei
# Funktioniert '$1==$2' bei awk ?
Damit habe ich eine Liste der IP, die doppelt auftauchen.

Diese Liste geht jetzt in eine FOR-Schleife, sequentielle Abarbeitung:

Code: Select all

cd  /dev/shm
cat  LOG  >  IN
for  i  in  $&#40;< Liste-Datei&#41; ;  do
  cat  IN  |  \
  sed  's@^\&#40;.* \&#41;\&#40;$i \&#41;\&#40;.* \&#41;\&#40;$i \&#41;\&#40;.*\&#41;$@\1\2\3\5@'  >  OUT
  # &#40;Bis auf die letzte Gruppenklammer sind auch hier Leerzeichen im Ausdruck.&#41;
mv  --force  OUT  IN
done
(Hoffentlich ist das RAM-Laufwerk dafür schnell genug)

Ist ein bischen holprig, aber einen regulären Ausdruck mit einem regulären Ausdruck in einem sed-Durchgang abzugleichen?
Und bei HOLD- und Pattern-Space bin ich nicht stabil. :?
Syntax korrekt? Soll eher eine Idee sein, die Aufgabe mehrstufig zu erledigen, statt in einem sed-Befehl.
(Und Du hast sed, grep und awk dabei :) )
mfg komsomolze

brum

ip

#3 Post by brum »

Vielen Dank für das feine "Hieroglyphen-Netz", kann ich gut gebrauchen und die hunderte allow-Einträge der httpd.conf zu kontrollieren ...

Grüße
brum

WellWork
Posts: 1
Joined: 24. Aug 2008 16:25

#4 Post by WellWork »

Hallo!
Ich kenne das ausgezeichnete Programm für Finde doppelte Bilder.
Es heißt Clone Remover.
Ich berate Ihnen, es auszunutzen.

Post Reply