2012-08-29 2 views
0

JPCap 라이브러리를 사용하여 네트워크 스니퍼를 구현하려고합니다.JPCap - TCP 패킷을 캡처 할 수 없습니다.

문제는 다른 노드의 UDP 패킷 만 캡처한다는 것입니다. TCP 패킷이 캡처되지 않습니다. 당신이 방송 MAC로 전송되는보고있는 다른 노드에서 UDP 패킷이 있습니까

captor=JpcapCaptor.openDevice(interfaceList[interfaceNumber], 65535, true, 20); 
captor.setFilter("ip and tcp",true); 


JpcapWriter writer=JpcapWriter.openDumpFile(captor,"pass.txt"); 

for(int i=0;i<10;i++){ 
     //capture a single packet 
     Packet packet=captor.getPacket(); 
     //save it into the opened file 
     writer.writePacket(packet); 

    } 
writer.close(); 

답변

0

:

이것은 내가 사용하는 코드입니다 (내 컴퓨터의 사실 TCP 패킷 만 스니핑되고있다) 주소 (ff : ff : ff : ff : ff : ff)? 그렇다면 문제는 UDP 패킷을 캡처 할 수 있지만 TCP 패킷은 캡처 할 수 없다는 것입니다. 문제는 다른 호스트 (UDP 패킷은 브로드 캐스트 패킷 일 수 있지만 대부분은 그렇지 않은 패킷)에서 비 브로드 캐스트 패킷을 캡처 할 수 없다는 것입니다. TCP 패킷은 결코 브로드 캐스트 패킷이 아닙니다.

jpcap.JpcapCaptoropenDevice 방법에 대한 세 번째 인수는 무차별 모드를 설정할지 여부를 지정합니다. 그렇다면 다른 호스트에서 다른 호스트로 보낸 비 브로드 캐스트 패킷을 캡처하는 데 필요합니다.

그렇다면 전환 된 네트워크에있는 것일 수 있습니다. 스위치드 이더넷 네트워크에서 "타사"트래픽을 캡처하기 위해 수행해야 할 작업에 대한 자세한 내용은 the CaptureSetup/Ethernet page on the Wireshark Wiki을 참조하십시오.

관련 문제