Ich habe pcap Dateien kontinuierlich generiert für mich. Es möchte sie kontinuierlich einem "ewig laufenden" tshark/wireshark zuführen. Hier ist, was ich habe versucht (OSX)Kontinuierliche Fütterung pcap Dateien zu tshark/wireshark
mkfifo tsharkin
tail -f -c +0 tsharkin | tshark -l -i - > tsharkout 2>stderr &
cat file1.pcap > tsharkin
Die oben funktioniert gut, bekomme ich erwartete Ausgabe file1.pcap in tsharkout
cat file2.pcap > tsharkin
Die oben nicht funktioniert, habe ich nichts in tsharkout, aber ich erhalte "1 Paket fallen gelassen" + "3 Pakete eingefangen" in stderr
cat file2.pcap > tsharkin
der Versuch, wieder macht die tail/tshark Prozesse stoppen/crash
Ich versuchte es noch einmal, aber diesmal mit file2.pcap zuerst und dann file1.pcap. Dieses mal wird file2.pcap gut verarbeitet und file1.pcap macht tail/tshark processes stop/crash. Also werde ich zu dem Schluss kommen, dass mit den beiden pcap-Dateien nichts falsch ist, aber es scheint, dass es tshark nicht gefällt, wenn mehr als eine pcap-Datei darauf geworfen wird.
Nur um es zu testen, habe ich versucht file1.pcap und file2.pcap verschmelzenden mergecap unter Verwendung eines ersten und Futtermittel, die in tshark
mergecap -F pcap -w file1_2.pcap file1.pcap file2.pcap
cat file1_2.pcap > tsharkin
Dies funktioniert gut, ich erwartete Ausgabe erhalten sowohl von file1.pcap und file2 .pcap in tsharkout
Problem ist, dass meine pcap-Dateien auf dem Weg ankommen, so dass ich sie nicht alle zusammenfassen kann, bevor ich an tshark füttere. Ich muss in der Lage sein, die PCAP-Dateien, wenn sie ankommen, zu einem "immer laufenden" Tshark zu füttern. Wie kann ich das machen?
Warum wickle ich diesen Code nicht auf einen Knotenserver und spawne jedes Mal einen neuen Hash, wenn eine Datei empfangen wird. der High-Level-Algorithmus, - Receive pcap in einer neu erstellten Pipe. (möglicherweise benennen Sie es auf Timestamp) - Machen Sie Knoten app Abfrage das Verzeichnis nach neu erstellten Named Pipes zu überprüfen. - Sobald ein pcap für eine Named Pipe empfangen wurde, spawnen Sie einen Child-Prozess mit tshark. - Ergebnisse in ein gemeinsames Verzeichnis schreiben. – Himanshu97
@ Himanshu97 Es wird es nicht tun. Zwei aufeinanderfolgende pcap-Dateien können Daten enthalten, die zu derselben Sitzung gehören. Z.B. Ein HTML-Dokument wurde über die Leitung über mehrere IP-Pakete übertragen. Die erste Hälfte dieser IP-Pakete könnte in file1.pcap sein, während die letzte Hälfte dieser IP-Pakete in file2.pcap sein könnte. Ich möchte, dass das HTML-Dokument rekonstruiert wird, und das wird nur passieren, wenn file1.pcap und file2.pcap, wenn sie in die gleiche tshark-Instanz eingegeben werden. –
In diesem Fall können Sie einfach die Datei in Ihre Unix-Leitung wie diese, "cat '| tsharkin" pipe und machen Tshark immer aus der Leitung lesen. Also, was passieren wird, werden Sie Ihre Dateien Inhalt an die Rohrleitung anhängen. und Named Pipe funktioniert als FIFO, so sollte es funktionieren. –
Himanshu97