2012-07-09 1 views
0

그래서 tcpdump를 사용하여 UDP 패킷을 파일로 캡처했습니다. 이제 내 패킷으로 내 pcap 파일을 가지고 있습니다.Java pcap 파서를 ByteBuffer에 넣기

Java 프로그램이이 파일을 열고 패킷 내용을 한 번에 하나씩 ByteBuffer에 넣으면 내 프로토콜 파서가 각 패킷을 네트워크에서 가져 오는 동안 처리 할 수 ​​있습니다. 내 프로토콜 파서는 네트워크 판독기에 의해 호출되는지 또는 pcap 프로세서에 의해 호출되는지 상관하지 않아야합니다.

자바에 라이브러리 또는 표준 방법이 있습니까? 당신은 저를 포기하거나 일부 소스 코드 예제를 가르쳐 주시겠습니까? 감사!

+0

가 사용할 수있는의 ByteBuffer에 파일을 읽고 그것을 배치하려면? 아니면 당신이 발명 한 것입니까? –

+0

@JoeriHendrickx 이것은 단순한 ByteBuffer 파서로 프로토콜 (예 : UDP 컨텐츠)을 필요로합니다. – chrisapotek

답변

3

jpcap을 사용하면 정확히 필요한 것입니다.

+0

jpcap이 maven 중앙 저장소에 있는지 여부를 알고 있습니까? 나는 주변을 수색했지만 찾지 못했습니다. – chrisapotek

+0

거기에있을 거라고 생각해보십시오. http://kindsoft.cn/maven2/jpcap/jpcap/ – shem

+0

jpcap은 32 비트 리눅스에서만 작동합니다. : – chrisapotek

0

당신이 당신의 '프로토콜 분석기'표준 인터페이스의 어떤 종류를 사용하여이

FileChannel in = new FileInputStream(filename).getChannel(); 

// read into a ByteBuffer from a file. 
in.read(byteBuffer); 
+0

와우?하지만 원시 pcap 파일이 될 것입니다. 구문 분석 할 필요가 없습니까? 어떻게 든 그렇게 결과 ByteBuffer 그것이 살아있는 udp 네트워크 리더에서 왔을 것 같을거야? – chrisapotek

+0

예. jpcap가 당신을 도울 수 있다고 생각합니다 .tcpdump가 생성하는 형식에 익숙하지 않습니다. Wireshark with는 tcpdump 파일을 이해하기위한 좋은 도구입니다 (그러한 도구를 작성하는 대신) –