`

jpcap CapturePacketTest

 
阅读更多

 

package test.jpcap;

import net.sourceforge.jpcap.capture.*;
import net.sourceforge.jpcap.net.*;
import java.util.*;
import java.io.*;
 
public class CapturePacketTest implements RawPacketListener,PacketListener{
    public static FileOutputStream  fos = null;
   
    public static void main(String[] args)throws Exception{
              // Print copyright info
              System.out.println();
              System.out.println("Capture Ethernet packet Ver 0.01, author yanqlv(maomao).");
              System.out.println("Copyright (c) 2005 yanqlv of Luoyang Normal College, all Rights Reserved.");
              System.out.println();
       
        // Determin which capture device to use      
        PacketCapture pcap = new PacketCapture();
        String defaultDevice = pcap.findDevice();
        StringTokenizer st1 = new StringTokenizer(defaultDevice,"\n");
        String defaultDeviceStr = st1.nextToken();
        int default_num = 1;       
       
        String[] capDevices = pcap.lookupDevices();
        int capdevice_num = capDevices.length;
        System.out.println("There "+ (capdevice_num>1?"are":"is") + " "+ capdevice_num +" device"+(capdevice_num>1?"s":"")+" found!");
        System.out.println("*****************************************************************************");
        for (int i=0; i<capdevice_num; i++){
            //System.out.println("*****capture device["+ i +"]="+capDevices[i]);
            StringTokenizer st = new StringTokenizer(capDevices[i],"\n");
            String capStr = st.nextToken();
            String capDesc = st.nextToken();
            if( defaultDeviceStr.equals(capStr) ) default_num = i+1;
            System.out.println( "[" + (i+1) + "] " + capStr + "\n(" + capDesc + ")");
        }
        System.out.println("*****************************************************************************");
     
        System.out.println("(default to use "+ default_num +")");       
      
        int selectn = 1;
        if(capdevice_num > 1 ){
            System.out.print("Please select [");
            for(int i=0; i<capdevice_num;i++) {
                System.out.print(i+1);
                if(i!=capdevice_num-1) System.out.print(" or ");
            }
            System.out.print("]:");          
            String readstr = new DataInputStream(System.in).readLine();
            selectn = Integer.parseInt( new String( readstr ) );
        }
        //System.out.println("selectn="+selectn);
               
        // Want to save capture result to file
        fos = new FileOutputStream("capture.txt");
        
        // Begin capture
        pcap.open( (new StringTokenizer(capDevices[selectn-1],"\n")).nextToken(),true );               
        CapturePacketTest t1= new CapturePacketTest();
        pcap.addRawPacketListener(t1);
        pcap.addPacketListener(t1);
        pcap.capture(-1);
    }
   
    public void rawPacketArrived(RawPacket rawPacket){
        //System.out.println("rawPacket="+rawPacket);
    }
   
    public void packetArrived(Packet packet) {
        try{
            if( packet instanceof TCPPacket){
                TCPPacket tcppacket = ((TCPPacket)packet);
                //System.out.println("Packet="+packet);
                //System.out.println("window size="+tcppacket.getWindowSize());
                //System.out.println("Packet="+((TCPPacket)packet).toColoredVerboseString(true));
                //if( tcppacket.getDestinationPort()==110 || tcppacket.getSourcePort() ==110) // pop3
                if( tcppacket.getDestinationPort()==80 || tcppacket.getSourcePort() ==80){ // http
                    String captureStr = new String( tcppacket.getTCPData() );
                    System.out.println( ">>"+ captureStr);
                    fos.write(tcppacket.getTCPData());
                    fos.write(new String("**********************************************************\n").getBytes());
                    //fos.close();
                    //CaptureVec.addElement(captureStr);
                }
            }
        }catch(Exception ioe){
            System.out.println("Exception ocurred:"+ioe);
        }
    }
   
}
 

 

分享到:
评论

相关推荐

    64位jpcap.jar及对应jpcap.dll下载

    标题 "64位jpcap.jar及对应jpcap.dll下载" 暗示了这是一个针对64位操作系统的Java库,主要用于网络数据包捕获和分析。jpcap是一个开源项目,它提供了Java接口来处理网络接口卡(NIC)的数据包捕获,类似于著名的...

    JPcap_jpcap_

    《Jpcap:Java网络封包捕获库的深度解析》 Jpcap,全称为Java Packet Capture,是一个用于网络封包分析的开源库,专为Java编程语言设计。其核心功能是允许开发者在Java环境中捕获、过滤、分析以及回放网络数据包。...

    Jpcap.dll和jpcap.jar

    **Jpcap.dll和jpcap.jar是Java网络包捕获库Jpcap的重要组成部分**。Jpcap是一个开源的Java库,它为Java程序员提供了网络数据包的捕获和分析功能,类似于知名的libpcap(在Unix系统上)和WinPcap(在Windows系统上)...

    jpcap.jar jpcap.dll

    《Java网络通信与jpcap库详解》 在IT领域,网络通信是不可或缺的一部分,而Java作为一门跨平台的编程语言,提供了丰富的网络编程接口。本文将深入探讨使用Java进行网络通讯报文监听的关键技术——jpcap库,以及如何...

    jpcap.jar+Jpcap.dll

    《Jpcap:Java平台上的数据包捕获与分析库》 Jpcap是一个专为Java平台设计的数据包捕获和分析库,它允许开发者在Java应用程序中实现网络监控和数据包处理功能。这个库的核心组件包括两个主要部分:`jpcap.jar`和`...

    jpcap使用文档及jpcap.jar

    **Jpcap使用文档及jpcap.jar** Jpcap是一个强大的Java库,它为网络数据包捕获和分析提供了接口。这个库是为那些希望在Java环境中进行网络监控、数据分析或者网络安全研究的开发者设计的。Jpcap的全称是Java Packet ...

    jpcap.jar和jpcap.dll2积分下载

    《jpcap.jar和jpcap.dll:Java网络封包捕获库的解析与应用》 在计算机网络中,封包捕获(Packet Capture)是一项关键的技术,它允许开发者或网络管理员监控网络流量,分析数据传输,排查网络问题。本文将深入探讨...

    jpcap.jar jpcap.dll 32 64

    标题中的"jpcap.jar jpcap.dll 32 64"指的是Jpcap库的相关文件,包括Java的jar包和Windows平台下的动态链接库(dll)文件,分别适用于32位和64位操作系统。Jpcap是一个用于网络数据包捕获和分析的开源库,它为Java...

    64位的jpcap.dl、jpcap.jar

    《深入理解64位jpcap.dl与jpcap.jar在抓包技术中的应用》 在信息技术领域,网络数据的捕获与分析是至关重要的一个环节,这涉及到网络安全、性能监控、故障排查等多个方面。jpcap作为Java平台上的一个网络包捕获库,...

    jpcap.jar包和配套的jpcap.dll

    《jpcap.jar与jpcap.dll:网络数据包捕获与分析的利器》 在IT行业中,网络数据包的捕获与分析是一项至关重要的任务,对于网络安全、故障排查、性能优化等领域都有着广泛的应用。jpcap.jar和jpcap.dll就是这样的工具...

    Java jpcap抓包

    Java jpcap抓包是一种利用Java编程语言和jpcap库来实现网络数据包捕获的技术。jpcap是Java Packet Capture的缩写,是一个开源的网络协议分析库,允许开发者在Java应用程序中进行网络数据包的捕获和处理。在计算机...

    mgodave-Jpcap.zip

    标题中的"mgodave-Jpcap.zip"是一个压缩包文件,包含了与Jpcap相关的资源,Jpcap是一个Java包捕获库,主要用于在Linux环境下进行网络数据包的捕获和分析。描述中提到,这个压缩包可以帮助用户在Linux系统上生成...

    Jpcap安装包及详细安装说明文档

    **Jpcap安装包及详细安装说明文档** **一、Jpcap简介** Jpcap是Java平台上的一个网络封包捕获库,它允许开发者在Java程序中进行网络数据包的捕获、分析和发送。Jpcap提供了一套API,能够方便地访问网络接口,读取...

    net.sourceforge.jpcap的api

    与标准的libpcap库(主要用于C语言环境)相比,jpcap为Java环境提供了类似的接口,但同时也进行了额外的封装,使得Java开发者能更便捷地使用这些功能。 二、net.sourceforge.jpcap.jar的优势 ...

    jpcap.dll+jpcap.jar+配置手册+测试程序

    《全面解析jpcap.dll与jpcap.jar:配置与测试实战》 在信息技术领域,网络数据包捕获是分析网络行为、诊断问题和开发网络安全工具的重要环节。本文将深入探讨"jpcap.dll"与"jpcap.jar"这两个核心组件,以及如何正确...

    安装jpcap.doc

    **安装Jpcap详解** Jpcap是一款强大的网络数据包捕获库,它为Java开发者提供了接口,使得在Java环境中捕获和分析网络流量成为可能。这篇文章将详细讲解如何在Windows环境下,特别是在Win7专业版上,安装并配置Jpcap...

    jpcap_x64.dll+jpcap.jar

    《jpcap_x64.dll与jpcap.jar:深入理解网络数据包捕获与分析》 在IT领域,网络数据包捕获和分析是一项重要的技术,它为网络监控、故障排查、安全检测等提供了基础工具。在标题“jpcap_x64.dll+jpcap.jar”中,我们...

    win10 下的 64位 jpcap开发包 jpcap64位

    《深入解析Win10下64位Jpcap开发包》 Jpcap,全称为Java Packet Capture,是一个用于Java平台的网络数据包捕获和分析的库。它为开发者提供了一个强大的工具集,用于在应用程序中实现网络监控、数据分析和网络测试等...

    Jpcap-0.7_java

    Jpcap是用于捕获和发送网络数据包的Java库。 用Jpcap,你可以开发应用程序捕获数据包从一个网络接口和可视化/分析他们在java。您还可以开发Java应用程序通过网络接口发送任意数据包。 Jpcap已在微软视窗(98/2000/...

    Jpcap_api jpcap的开发api文档 html版

    **Jpcap_API详解** Jpcap是一款强大的网络开发包,专为Java开发者设计,用于在应用程序中捕获、分析和构建网络数据包。它的全名是Java Packet Capture,允许开发者在不同平台上实现网络监控和分析功能。Jpcap API是...

Global site tag (gtag.js) - Google Analytics