PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tcpdump script



bigbuTT
25-10-2002, 11:48
Hi,

Ich habe mir ein kleines Script geschrieben welches mittels tcpdump jeden Traffic der über Port 10000 erkennt und ein wavfile abspielt.
Das Sciprt:

------------------------------------


#!/bin/sh

tcpdump -l -p -i eth1 'port 10000' | while read line

do
#echo $line | awk '{print "ping from " $2}'
/usr/X11R6/bin/wavplay /home/alex/sounds/peep.wav >/dev/null
done
------------------------------------

Soweit so gut, das funzt.
Jetzt gibt es nur ein Problem: Für jede Line die mein Script findet wird das wavfile abgespielt. Das ist viel zu oft. Dieses Wavfile soll nur für jede neue IP die dazu gekommen ist abgespielt werden.
Für einen Tip wäre ich dankbar!

bigbuTT.de

fork
25-10-2002, 17:07
Mal ein Ansatz:
...
index=0
while read line
do
NEUE_IP=$(echo $line| awk irgendwas)
IP_IST_NEU=1
index_2=0
while [ $index_2 -le $index ]
do
if [ "$ALLE_IPs[$index_2]" == "$NEUE_IP" ]
then IP_IST_NEU=0
fi
((index_2=$index_2+1))
done
if [ $IP_IST_NEU -eq 1 ]
then KLINGELINGELING
echo "neue IP: $NEUE_IP"
((index=$index + 1))
ALLE_IPs[$index]=$NEUE_IP
fi
done

Die Vorgehensweise:
Jede IP überprüfen ob sie schon im Array(->man Bash) ist und wenn nicht wav-Datei abspielen und ins Array aufnehmen. In meiner Signatur stehen auch gute Doku Links. Das Skript ist absolut fehlerfrei. Meine Signatur enthält auch gute Doku.

bigbuTT
25-10-2002, 21:41
ich danke dir!!!

bigbuTT