如何可以用java实现后台抓包,然后提取想要的包

如何可以用java实现后台抓包,然后提取想要的包,第1张

jPCAP在JAVA中,并非磨猛粗一个真正去实现对数据链路层的控制,瞎镇而是一个中间件,JPCAP调用winpcap/libpcap,给JAVA语言提供一个公共的接口,从而实现了平台知散无关性。

fiddler实际上是通过代理的方式来工作的。默认端口是8888,所以用来请求http的客户端,需要设定代理,就能被截获并记录。这种方式必须依赖fiddler进程正常工作。

以下是java设置代理的一种方式。具体要看使用什么客户端程序了。不同的客户端程序设置代理的方式肯定不一样。

Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("127.0.0.1", 8888))  

URL serverUrl = new URL(url)  

HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection(proxy)

样例:

package com.http  

  

import java.io.BufferedReader  

import java.io.InputStreamReader  

import java.net.HttpURLConnection  

import java.net.InetSocketAddress  

import java.net.Proxy  

import java.net.URL  

  

public class Http302Redirect {  

  

    public static void main(String[] args) {  

        try {  

            String url = "http://weibo.com/1253711052"  

            System.out.println("访问地址:" + url)  

  

            Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,  

                    new InetSocketAddress("127.0.0.1", 8888))  

 裤枝           URL serverUrl = new URL(url)  

            HttpURLConnection conn = (HttpURLConnection) serverUrl  

                    .openConnection(proxy)  

            conn.setRequestMethod("GET")  

  

            conn.addRequestProperty("Accept-Charset", "UTF-8")  

            conn.addRequestProperty("User-Agent",  

   镇行                 "Mozilla/5.0 (Windows U Windows NT 5.1 zh-CN rv:1.9.2.8) Firefox/3.6.8")  

            conn.addRequestProperty("Referer", "http://weibo.com")  

 胡旅敏           conn.connect()  

            BufferedReader reader = new BufferedReader(new InputStreamReader(  

                    conn.getInputStream()))  

            StringBuffer buffer = new StringBuffer()  

            String line = reader.readLine()  

            while (line != null) {  

                buffer.append(line).append("\r\n")  

                line = reader.readLine()  

            }  

            reader.close()  

            conn.disconnect()  

            System.out.println(buffer)  

        } catch (Exception e) {  

            e.printStackTrace()  

        }  

    }  

  

}

Wireshark数据包解析:在Wireshark中关于数据包的叫法有三个术语,分别是帧、包、段。

Wireshark分析数据包

在Wireshark中的数据包都可以称为是网络数据。每个网络都有许多不同的应用程序和不同的网络涉及。但是一些常见的包中,通常都会包括一些登录程序和网络浏览会话。

捕获访问网站的数据包,并保存该文件名为http-wireshar.pcapng。

接下来通过该捕获文件中的数据,分析访问Web的整个过程。在该捕获过程中,将包含DNS请求、响应、TCP三次握手等数谈昌据。

在该界面31帧,是DNS解析为一个IP地址的数据包(被称为一个“A”记录)。32帧表示返回一个与主机名相关的IP地址的DNS响应庆侍旁包。如果客户端支持IPv4和IPv6,在该界面将会看到查找一个IPv6地址(被称为“AAAA”记录)。此时,DNS服务器将响应一个IPv6地址或混杂的信息。

在该界面看客户端和服务器之间TCP三次握手(33、34、35帧)和客户端请求的GET主页面(36帧)。誉橡然后服务器收到请求(37帧)并发送响应包(38帧)。

当客户端从相同的服务器上再次请求访问另一个链接时,将会再次看到一个GET数据包(1909帧)。

注意:

如果链接另一个Web站点时,客户端将再次对下一个站点进行DNS查询(156、157帧),TCP三次握手(158、159、160帧)。

31帧是客户端请求百度,通过DNS服务器解析IP地址的过程。标识为“A”记录。

32帧是DNS服务器回应客户端请求的过程。标识为response。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12555383.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存