0

连接到 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库。如何捕获这些数据包?我没有想法。

请大家帮帮我...

4

1 回答 1

2

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

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

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

希望这些信息有所帮助。

于 2014-06-18T18:19:56.167 回答