Android 安卓系统中的数据包级网络

Android 安卓系统中的数据包级网络,android,networking,packet,packet-sniffers,Android,Networking,Packet,Packet Sniffers,我知道如何在Android中开发和使用ApacheHTTP库,但我想降低成本,掌握无线接口适配器,并能够无线发送和接收数据包。我知道这是可能的,因为android市场上有嗅探应用程序。我环顾四周,用谷歌搜索了很多次,但似乎都不知道如何开始。令人惊讶的是,以前似乎也没有人问过这个问题 我想没有android API可以为您实现这一点。请建议一种在android中发送/接收数据包的方式,或发布对任何此类资源的引用 谢谢 注意:我知道java.net api可以在android中使用(尽管我以前没有使

我知道如何在Android中开发和使用ApacheHTTP库,但我想降低成本,掌握无线接口适配器,并能够无线发送和接收数据包。我知道这是可能的,因为android市场上有嗅探应用程序。我环顾四周,用谷歌搜索了很多次,但似乎都不知道如何开始。令人惊讶的是,以前似乎也没有人问过这个问题

我想没有android API可以为您实现这一点。请建议一种在android中发送/接收数据包的方式,或发布对任何此类资源的引用

谢谢


注意:我知道java.net api可以在android中使用(尽管我以前没有使用过),但这并不能提供我想要的访问方式。

你看过NDK吗?也许你可以在C++中做你想做的事。

用标准SDK/NDK是无法做到这一点的

在根设备上,您可以调用
tcpdump
,或另一个基于libpcap的应用程序。没有一种受支持的方法可以在生产Android设备上为Java应用程序提供所需的特权


例如,介绍如何使用
tcpdump
在Android上执行基本的数据包捕获。

Android OS 4.0或更高版本提供了一个VPN服务,您可以通过它监视网络流量。at提供的应用程序使用VPN服务捕获数据。

是的,我听说过,但我不知道如何进行设置。看起来很复杂:-(这里的实际用途是什么?我想创建一个应用程序,它可以通过网桥模式的接入点连接到BSNL(ISP)服务器。除此之外,还可以做很多其他有趣的事情。@Rushil,网桥模式和什么有什么关系?通常当人们谈论“网桥模式”时这是在一个设备不作为接入点的情况下,它的目的是通过以太网提供对无线局域网的访问。你是说临时无线吗?如果是,请看。@Mike,如果我不清楚,对不起,我说的桥接模式是指我的路由器+调制解调器(也是接入点)显示我可以连接到internet的4个选项。其中一个是网桥模式。当调制解调器处于网桥模式时,我无法使用Android设备连接到ISP服务器。基本上,这里使用PPPoE协议与BSNL通信,Android没有任何实现。我可以提供实现d我拿到了wifi适配器。谢谢!这是一个好的开始!但那篇博文说你必须将android设备连接到电脑上。难道不可能创建一个应用程序,它能够使用libpcap捕获和发送数据包吗?我的意思是,在一个根手机上。博文似乎没有说太多。@Rushil,你需要的理由有几个d连接PC。(1)如果设备尚未根目录,则为其根目录。(2)将tcpdump二进制文件推送到手机上。(3)要运行
adb shell
来运行tcpdump。在一个根手机上,您可以编写Java代码来调用基于自定义构建的
libpcap
的二进制文件,您必须设计该二进制文件,以便以您可以显示的格式将数据返回到GUI。关键是,如果您的唯一目标是看到收到的数据包,那么您只需o是手机的root用户,启用调试,推送tcpdump,以root用户身份运行
adb shell
,并开始使用
tcpdump
@Rushil,同样,正如我所提到的,即使是在根设备上,也不支持授予Java应用程序root权限。支持的唯一方法是(由社区提供,请参阅)是将任意本机二进制文件作为根文件启动。因此,您可以使用内部静态链接的
libpcap
交叉编译二进制文件(类似于
tcpdump
)你可以调用它来完成你想做的工作。例如,你可以设计程序在
stdout
上输出XML格式的结果,并在
stdin
@Mike上给它命令-也许这是一个愚蠢的问题,但我只想说清楚。为了“启动一个本地二进制文件作为根”,你需要有一个根手机吗?谢谢!事实上我需要能够“制造”这样的工具,而不是使用第三方软件。不过我会尝试一下:-)@sandy-我一直在查看vpn服务,但无法监控网络流量。它似乎是用来连接到VPN,而不是充当VPN。你做这件事运气好吗?@brianestey-我试过了,但还是找不到任何解决办法。