계속해서 pcap 파일을 생성했습니다. 지속적으로 tshark/wireshark에 피드를 계속 제공하려고합니다. 여기에, 나는 (OSX)지속적으로 pcap 파일을 tshark/wireshark에 넘겨주기
mkfifo tsharkin
tail -f -c +0 tsharkin | tshark -l -i - > tsharkout 2>stderr &
cat file1.pcap > tsharkin
위 tsharkout
cat file2.pcap > tsharkin
에서 file1.pcap에서 위의 잘 작동, 내가 기대 얻을 출력이 작동하지 않습니다
, 나는 tsharkout에서 아무것도 얻을 시도 것입니다 하지만 난 다시 시도
이cat file2.pcap > tsharkin
꼬리/tshark를 프로세스가/충돌
을 중지하게 표준 에러에 + "캡처 3 개 패킷을" "1 개 패킷이 떨어졌다"GET다시 시도했지만, 이번에는 file2.pcap을 먼저 수행 한 다음 file1.pcap을 사용했습니다. 이번에는 file2.pcap이 잘 처리되고 file1.pcap은 tail/tshark 프로세스를 중지/중단시킵니다. 그래서 나는 두 pcap-file에 아무런 문제가 없다고 결론을 내릴 것입니다. 그러나 tshark는 두 개 이상의 pcap-file이있는 것을 좋아하지 않습니다.
그냥 내가 먼저 mergecap를 사용 file1.pcap 및 file2.pcap을 병합 시도를 테스트하고 file1.pcap 및 파일 2에서 모두
mergecap -F pcap -w file1_2.pcap file1.pcap file2.pcap
cat file1_2.pcap > tsharkin
이 잘 작동, 내가 기대 얻을 tshark를에 출력을 그 먹이를 .pcap in tsharkout
문제는 내 pcap 파일이 길을 따라 도착하는 것이므로 tshark에 먹이기 전에 모두 병합 할 수 없다는 것입니다. pcap-files가 도착할 때, "끊임없이 돌아가는"tshark에게 먹일 수 있어야합니다. 어떻게해야합니까?
노드 서버에서이 코드를 랩핑하고 파일을 수신 할 때마다 새 tshark을 생성하지 않는 이유는 무엇입니까? -상위 수준 알고리즘 - 새로 생성 된 파이프에서 pcap을 수신합니다. (가능하면 타임 스탬프에 이름을 지정하십시오) - 노드 애플리케이션이 새로 생성 된 명명 된 파이프를 검사 할 디렉토리를 폴링하도록 만듭니다. - 명명 된 파이프에서 pcap을 받으면 tshark를 실행하는 자식 프로세스를 생성합니다. - 결과를 공통 디렉토리에 씁니다. – Himanshu97
@ Himanshu97 그렇게하지 않겠습니다. 두 개의 연속 pcap-file은 동일한 세션에 속한 데이터를 포함 할 수 있습니다. 예 : html 문서가 여러 ip 패킷을 통해 유선을 통해 전송되었습니다. 이러한 IP 패킷의 첫 번째 절반은 file1.pcap에있을 수 있으며 나머지 절반은 file2.pcap에있을 수 있습니다. 그 html 문서를 재구성하고 싶습니다. 그리고 그것은 동일한 tshark 인스턴스로 피드하는 경우 file1.pcap 및 file2.pcap 만 발생합니다. –
그럴 경우이 파일을 유닉스 파이프에 간단히 파이프 할 수 있습니다 ( "cat '| tsharkin" ). tshark은 항상 파이프에서 읽습니다. 그러면 파일 내용을 파이프에 추가합니다. 및 명명 된 파이프가 FIFO로 작동하므로 제대로 작동합니다. –
Himanshu97