2013-02-22 3 views
2
Error is :Exception in thread "main" java.lang.UnsatisfiedLinkError: 
    jpcap.JpcapCaptor.getDeviceList()[Ljpcap/NetworkInterface; at 
    jpcap.JpcapCaptor.getDeviceList(Native Method) at 
    jcap.network.main(network.java:63) 

import jpcap.*; 
import jpcap.packet.*; 
import java.io.*; 
import jpcap.packet.TCPPacket.*; 
import java.io.*; 
import jpcap.JpcapCaptor.*; 


class Network implements PacketReceiver { 
    System.out.println(System.getProperty("java.library.path")); 
    String sp=null; 
    String dp=null; 
    String window=null; 
    String sequence=null; 
    String acknowledge=null; 
    FileWriter ff=null; 
    String da=null; 

    public void receivePacket(Packet pt) { 
     try { 
      if(pt instanceof TCPPacket) { 
       TCPPacket tp=(TCPPacket)pt; 
       ff=new FileWriter("da.txt",true); 
       sp=new Integer(tp.src_port).toString(); 
       dp=new Integer(tp.dst_port).toString(); 
       window=new Integer(tp.window).toString(); 
       sequence=new Long(tp.sequence).toString(); 
       acknowledge=new Long(tp.ack_num).toString(); 
       byte[]dat=tp.data; 
       da=new String(dat); 
       ff.write("\r\n Source port is :-"+sp);  
       ff.write("\r\n Desination port is:-"+dp); 
       ff.write("\r\n Sequence no is:-"+sequence); 
       ff.write("\r\n Acknowledgement no is:-"+acknowledge); 
       ff.write("\r\n Status of rsv1 flag is:-"+tp.rsv1); 
       ff.write("\r\n Status of rsv2 flag is:-"+tp.rsv2); 
       ff.write("\r\n Status of Syn flag is:-"+tp.syn); 
       ff.write("\r\n Status of Urg flag is:-"+tp.urg); 
       ff.write("\r\n Status of Fin flag is:-"+tp.fin); 
       ff.write("\r\n Data :-"+da); 
       ff.write("\r\n"); 
       ff.write("\r\n"); 
       ff.close(); 
      }     
     } catch(Exception e) { 
      System.out.println(e.getMessage()); 
     } 
    } 

    public static void main(String args[])throws IOException { 
     int i;   
     try { 
      NetworkInterface[] devices = JpcapCaptor.getDeviceList(); 

      //for each network interface 
      for (i = 0; i < devices.length; i++) { 
       //print out its name and description 
       System.out.println(i+": "+devices[i].name + "(" +  
         devices[i].description+")"+devices[i].loopback); 
       //print out its datalink name and description 
       System.out.println(" datalink: "+devices[i].datalink_name + "(" 
         + devices[i].datalink_description+")"); 

       //print out its MAC address 
       System.out.print(" MAC address:"); 
       for (byte b : devices[i].mac_address) 
        System.out.print(Integer.toHexString(b&0xff) + ":"); 
       System.out.println(); 

       //print out its IP address, subnet mask and broadcast address 
       for (NetworkInterfaceAddress a : devices[i].addresses) 
        System.out.println(" address:"+a.address + " " + a.subnet + " "+ 
          a.broadcast); 
      } 
      JpcapCaptor captor=JpcapCaptor.openDevice(devices[0], 65535, true, 20); 
      captor.loopPacket(-1,new Network()); 
      captor.close(); 
     } 
     catch(Exception e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
} 
+1

코드가 들여 쓰기가 잘되어 있지 않아야합니다. –

+1

코드 블록에 일관되고 논리적 인 들여 쓰기를 사용하십시오. 코드의 들여 쓰기는 사람들이 프로그램 흐름을 이해하도록 돕기위한 것입니다. –

+0

또한 더 구체적인 예외를 잡으려고 시도하지 말고'(Exception e) '를 잡지 마라. – cIph3r

답변

1

UnsatisfiedLinkError의의 javadoc은 매우 간단하다. jcap에 필요한 lib가 없습니다.

미래에 javadocs는 이해할 수없는 예외가 발생하면 시작할 수있는 좋은 장소입니다.

4

UnsatisfiedLinkError를이

static{ 
     System.loadLibrary("JpcapCaptor.dll"); 
} 
+0

_Francis P 63 번째 줄 is_ 'NetworkInterface [] devices = JpcapCaptor.getDeviceList(); ' –

0

하는 컴퓨터에 jpcap를 설치 한 다음 코드를 실행하려고하면 'JpcapCaptor'기본 lib 디렉토리가로드되지 않았 음을 의미한다. 여기에서 jpcap.exe 파일을 다운로드 할 수 있습니다 http://jpcap.software.informer.com/0.7/

0

전체 컴파일 및 Jpcap (Mac OS X 컴퓨터에서 eclipse 사용) 연결 후 동일한 문제가있었습니다. Jpcap의 두 가지 버전이 있습니다 : https://github.com/jpcap/jpcap (JpCaptor가 없음)과 JpCaptor : https://github.com/mgodave/Jpcap이있는 버전이 있습니다. 아마 이것은 도움이 될 것입니다.

+0

이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [리뷰에서] (리뷰/저품절 포스트/10210688) – Zizouz212

+0

@ Zizouz212 - 이것은 링크 전용 답변이 아닙니다. 그것은 증거를 뒷받침하는 링크와 함께 문제에 대한 설명을 제공합니다. – APC

관련 문제