jNetPcap用于Android数据包捕获



当我连接到Wifi时,我一直试图在我的android应用程序中捕获数据包。

我正在使用广播接收器类。

当连接到wifi网络时,我已经成功地接收到广播,使用此代码:

ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (null != activeNetwork) {
if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI){
//wificonnected
return 1;
}
}

我想在网络连接时捕获数据包。我知道关于wifiInfo和WifiManager类的一切。

我在这里尝试使用jNetPcap库。如何捕获这些数据包?我不知道。

请帮帮我,伙计们。。。

您需要使用VpnService通过应用程序重定向设备的所有网络流量。

如果你想使用jNetPcap,这里有一个工作示例(这里和这里有更多信息)。

读取流量后,您必须按照此处所述为每个目的端口/ip打开一个套接字。不过这并不容易。你必须先了解VpnService,我建议你先看看ToyVpn。

希望这些信息能有所帮助。

最新更新