zoukankan      html  css  js  c++  java
  • jpcap安装与配置

    一.JPCAP简介

      众所周知,Java语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。JPCAP扩展包弥补了这一点。

         JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用wincap/libpcap,而给JAVA语言提供一个公共的接口,从而实现了平台无关性。在官方网站上声明,JPCAP支持FreeBSD 3.x, Linux RedHat 6.1, Fedora Core 4, Solaris, and Microsoft windows 2000/XP等系统。

         使用Jpcap能做的事:

    1.Jpcap是直接抓取经过数据链路层的数据包。因此可以自己写IP数据包直接发送给数据链路层。

    2.Jpcap会对抓取到的数据包进行一定程序的解析,根据数据包内容,将数据包封装为对应的对象()。

    3.根据用户设定的信息,过滤数据包(其实就是在解析的时候,对不需要的数据直接丢弃,不解析)

    4.Jpcap 只是直接从数据链路层上读取数据,并向数据链路层中发送数据,因此,Jpcap并不能操作其他程序从数据链路层中读数据或者向网卡中发送数据。(IP层协议程序)

    二.JpcapWinpcap下载

        Jpcap下载地址:

        http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/download.html

        Wincap下载地址:

        http://www.winpcap.org/archive/,在VCVS上的配置不再敖述,本文重点介绍JAVA方法。下载后安装winpcap

        JPCAP还有一个图形界面的工具JpcapDumper。看起来很不错:http://netresearch.ics.uci.edu/kfujii/jpcapdumper/doc/index.html

    三.Jpcap包的安装与配置(Eclipse环境下)
           1)
    下载并安装JRE(提供的JDK中就默认安装JRE了,所以不要在下载其他版本的JRE了);
           2)
    下载并安装winpcap(尽量下载最新版本);
           3)
    配置Jpcap路径:这一步也是最重要的一步。具体路径为,把Jpcap文件夹下lib文件夹里的Jpcap.dll复制到"C:\Program Files\Java\jre1.6.0_07\bin"文件夹里面(复制到你机器JRE文件夹放到bin文件夹里面就可以了,其中JRE的版本一定要与Eclipse配置的版本一致),再把Jpcap文件夹下lib文件夹里的Jpcap.jar复制到"C:\Program Files\Java\jre1.6.0_07\lib\ext"文件夹里面(复制到你机器JRE文件夹->lib->ext放到ext文件夹里面就可以了),
           4) 配置EclipseJRE环境,(一定需要),选择Window->preferences->Java->Installed JREs,Installed JREs选择框中选择相应的JRE版本,点Edit

    选择Add External JARs…,选择你的Jpcap.jar包("C:\Program Files\Java\jre1.6.0_07\lib\ext"文件夹里),在Finish就配置全部完成了;

     5) 编写,调试,运行程序。

    四.可能出现的问题

    第一个错误:

        加进来后,死活提示项目有错误,明明一切包都放好了,还是不行。网上找了很多,都不靠谱,有的甚至写的很深奥。最后把JRE删掉再重新导入,就好了。方法:右键点你的项目->properties->Java buildpath->remove,然后再导入。

    第二个错误:

        错误提示是“no dependence libray”,这个简单,90%是你没装winpcap

    第三个错误:

        这是最常见的, java.lang.UnsatisfiedLinkError: no jpcap in java.library.path。解决这个错误的办法说实在的,估计有很多,在这里我只说我的。

        这个错误提示是在javalibrary路径里找不到jpcap.dll,于是我System.out.println(System.getProperty("java.library.path"));发现路径很多,包括system32,于是我把jpcap.dll复制到system32,还是不行。继续复制到别的路径,依然不行。我又在run配置里加入-Djava.library.path=C:/WINDOWS/system32,还是不行。就在我一筹莫展时,我发现那JRE包路径是在“D:/Program Files/Genuitec/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/”,于是顺藤摸瓜进去,发现有个jre文件夹,里面有binlib,就又把dll之类的复制过去,这下可以了,顺利编译。根路径不一定全部相同,自己找一下。

    .API

        http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/javadoc/index.html?overview-summary.html

  • 相关阅读:
    Hibernate自动生成配置文件和实体类
    Hibernate中flush()的用法,以及延迟加载的介绍
    Hibernateibernate中的get()和load()方法
    Hibernate配置以及Hibernate初始化类
    java jstl标签
    java EL详解
    JSP内置对象的cookie和session实现简单登录界面
    JSP内置对象详解
    利用MVC模式简单设计jsp分页效果
    Can not issue data manipulation statements with executeQuery().解决方案
  • 原文地址:https://www.cnblogs.com/leonbond/p/2208196.html
Copyright © 2011-2022 走看看