实时监控Android设备网络封包

对Android网络抓包分析,一般是使用tcpdump抓个文件,再到PC用Wireshark打开分析。能不能达到直接使用Wireshark的效果? 答案是可以的,至少已经非常接近了。实现起来很简单,原理就是将tcpdump的数据重定向到网络端口,再通过管道(pipe)转到wireshark就可以了。

基本结构

如下图所示:

Android上使用的指令:

   i. tcpdump 

     正是因为可以生成libpcap格式的数据,Wireshark可以加以处理。

     官网:http://www.tcpdump.org/

     下面这个链接介绍了Android版本的编译:

     http://omappedia.org/wiki/USB_Sniffing_with_tcpdump  

   ii. netcat, 又称为瑞士军刀,小巧而功能强悍。如果在手机没有nc指令,可以方便地使用busybox提供的版本(直接到Google Play里安装)。

     http://www.busybox.net/

   iii. Wireshark, 不啰嗦了。

     http://www.wireshark.org/ 

两条指令

准备好了工具,依下面的方式执行两条指令就可以了 (只需要替换tcpdump所在的路径,以及nc前要不要加个busybox):

i. 使用adb shell在Android设备上执行:

     tcpdump -n -s 0 -w - | busybox nc -l -p 11233 

     *其中nc -l -p 11233, 即建立一个服务器端,以11233端口提供服务。需要以root用户执行。

ii. 在主机的命令下执行:

     adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233 | wireshark -k -S -i - 

    *其nc 127.0.0.1 11233,即建立一个客户端,连接到本机的11233端口。wireshark的参数见后面的补充说明。

*在Mac OS下有时需要在wireshark前加上sudo, 不然打开失败。如果没有看到结果,可以在nc指令加-v参数,显示更多的信息来查看。比如出现"Connection refused“时,注意检查指定的端口号是否正确。

也可以参考这里:

     http://www.kandroid.org/online-pdk/guide/tcpdump.html

效果如下,注意标题显示"Capturing from Standard Input"。

补充说明

 i. tcpdump详解

     http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 

 ii. 什么是libpcap格式

     http://wiki.wireshark.org/Development/LibpcapFileFormat 

 iii. wireshark参数

     http://man.lupaworld.com/content/network/wireshark/c9.2.html

     官方:http://www.wireshark.org/docs/man-pages/wireshark.html

 *Wireshark还带一些其它指令,如下:

     http://www.wireshark.org/docs/man-pages/

转载请注明出处:http://blog.csdn.net/horkychen 

其它有关生产力相关的文章,看这里

时间: 2025-01-29 21:22:10

实时监控Android设备网络封包的相关文章

《Android应用开发攻略》——2.5 监控Android设备的电量

2.5 监控Android设备的电量 Pratik Rupwal2.5.1 问题 你希望检测Android设备上的电量,以便在电量低于某个阈值时通知用户,从而避免意外状况的发生.2.5.2 解决方案 广播接收器可以用来接收电池状态变化时发送的广播,从而确定电量并且向用户发出警告.2.5.3 讨论 有时候,必须在Android设备的电量低于某个限度时警告用户.例2-4中的代码设置电量变化时发送的广播消息,并创建一个广播接收器,以接收警告用户电池放电到特定水平的广播消息. 例2-4:主活动 publ

IBM如何实时监控电子口岸网络

中国电子口岸(以下简称电子口岸)是经国务院批准,由海关总署牵头,会同其他11个部委共同开发建设的公众数据中心和数据交换平台. 业务需求: 电子口岸根据业务发展的需求,需要建立以电子口岸为核心,覆盖全国 41个数据分中心的虚拟专用网络平台,以保证业务数据安全.可靠的传输,为广大进出口企业和各级政府行政管理机关提供必要的业务操作平台.随着电子口岸越来越广泛地使用,网络的高可用性变得尤为重要.为此,电子口岸要建立网络运维管理体系,明确可量化.可操作的网络质量指标体系,提高网络可用性与服务质量,规范网络

android 代码怎么实时监控连接当前wifi热点的设备的连接或断开事件?

问题描述 android 代码怎么实时监控连接当前wifi热点的设备的连接或断开事件? 如题,手机A开了热点,手机B打开Wifi连接上了A.那么当B关闭Wifi按钮时,A怎么实时感知到.有没有实现的代码.方法.求大神们解救哦哦!!!!! 解决方案 // 当网络变化的时候系统会发出一个广播 Broadcast,只要在程序中注册一个广播接收器 BroadcastReceiver,并在 IntentFilter 中添加相应的过滤,这样一旦网络有变化,程序就能监听到 public static fina

系统中实时监听android的网络状态并且给予处理

问题描述 系统中实时监听android的网络状态并且给予处理 比如 在一个android小程序中 发现网络断了就给予页面跳转 解决方案 分几个步骤 1.监测手机上的网络连接状态 2.及时连接网络不一定可达,尝试连接服务器,如果通,则网路通. 解决方案二: 周期性检测网络连接>. 解决方案三: /** * 网络请求失败处理 */ public void requestNetDataFail(ErrorInfo errorInfo) { switch (errorInfo.errorCode) {

财付通构建网络支付反欺诈实时监控系统

本文讲的是财付通构建网络支付反欺诈实时监控系统,2014年9月17日-19日,2014 中国系统架构师大会(SACC 2014)在北京五洲皇冠国际酒店盛大开幕.作为中国规模最大的架构师豪门盛会,本届中国系统架构师大会以"发现架构之美"为主题,探讨最具前瞻性的行业趋势与技术热点,分享架构在企业中的最佳实践,共同领略架构之美. ▲腾讯财付通的助理总经理张平 互联网金融爆发一方面带来了一场金融体系的变革,另一方面也让金融朝向普惠金融方向发展.但是,互联网金融也是金融,背后的风险控制在互联网时

iOS实时监控网络状态的改变_IOS

在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的:  (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)  (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验  WIFI网络:自动下载高清图片  4G/3G网络:只下载缩略图  没有网络:只显示离线的缓存数据   常用的有以下两种方法:  (1).使用苹果观法提供的检测iOS设备网络环境用的库 Reachablity  (2).使用AFN框架中的AFNetworkReachabilityManage

Android(Linux)实时监控串口数据

    之前在做WinCE车载方案时,曾做过一个小工具TraceMonitor,用于显示WinCE系统上应用程序的调试信息,特别是在实车调试时,用于监控和显示CAN盒与主机之间的串口数据.因为需要抢占市场先机,经常在新车上市前,就得配合CAN解码盒厂商同步调试车机端软件.这时候,TraceMonitor就可能派上大用场.遇到说不清是哪一边的问题时,抓数据一看,就清清楚楚了.有时终端客户的机器出现了原车功能异常的问题,也可以直接运行该工具,实时抓取串口数据提供给我们以分析问题原因.不过该工具需要业

android l流量监控-android 流量监控 求断开网络连接代码实现

问题描述 android 流量监控 求断开网络连接代码实现 android 流量监控,流量超出时断开网络连接 求断开网络连接代码实现 求代码求逻辑 我找了好久都是监测网络连接状态的,要断开网络连接的代码

Android判断设备网络连接状态及判断连接方式的方法_Android

本文实例讲述了Android判断设备网络连接状态及判断连接方式的方法.分享给大家供大家参考,具体如下: 在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情.这些功能都写在了下面的代码中了!请看主要代码如下: /** * 检测网络是否连接 * @return *