lis*_*aro 6 port networking android tcp ios
我有兴趣让我的移动应用程序在后台运行并过滤TCP数据包.
我知道由于沙盒,每个操作系统特权级别以及iOS如何处理后台任务,我将面临限制,因此我想确认是否可以在iOS和Android上执行此操作.
Android和iOS是否允许您分析和修改通过TCP端口的数据包?如果可能的话怎么样?当我的应用程序保留在后台时,我可以这样做吗?
ato*_*tok 17
我认为在iOS上不可能.
我没有找到用于网络监控/数据包过滤的公共API.这种API有可能存在,但它是隐藏的.但在这种情况下,Apple App Store审查指南指出:
2.5使用非公共API的应用程序将被拒绝
如果您需要一个特定的引用来表明它是不可能的,您可以使用:
iOS不直接支持数据包跟踪.但是,如果您通过USB将iOS设备连接到Mac ...
下一个最好的事情是在"设置"中手动配置代理服务器,然后过滤服务器端的流量.由于iOS后台任务的限制,在设备上本地运行代理不是一个选项:
2.16多任务应用程序只能将后台服务用于其预期目的:VoIP,音频播放,位置,任务完成,本地通知等.
此外,这篇文章建议可以在iOS 8上以编程方式设置VPN连接.还需要发送设备的流量,我不确定此方法是否符合指南.
某些应用程序提供测量网络流量的功能.但他们使用专用API进行网络统计:iPhone数据使用跟踪/监控.
还有通过此处描述的USB电缆在iOS上进行数据包跟踪的方法.
在Android上,您可以将设备配置为将您的应用用作VPN服务.但:
要获得用户许可,请致电VpnService.prepare:
public void onClick(View v) {
Intent intent = VpnService.prepare(getApplicationContext());
if (intent != null) {
startActivityForResult(intent, 0);
} else {
onActivityResult(0, RESULT_OK, null);
}
}
Run Code Online (Sandbox Code Playgroud)
并处理结果,启动您的VpnService.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Intent intent = new Intent(this, MyVpnService.class);
startService(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
你VpnService必须实施public int onStartCommand().该服务被视为前台服务,不应被操作系统杀死.
这个问题:用于捕获数据包的Android VpnService不会捕获数据包,它的评论对数据包处理本身有所启发.
| 归档时间: |
|
| 查看次数: |
3158 次 |
| 最近记录: |