liyulun 发表于 2023-11-17 16:17:29

安卓请问一下,防抓包如何判断V,P-N是否开启?

就是判断设备是否开启vp_n

创世魂 发表于 2023-11-17 18:57:10

怎么说呢没啥意思,因为别人可以反编译你的软件,把判断去掉重新抓包。

ゞ情非得已Sky 发表于 2023-11-17 19:02:38

创世魂 发表于 2023-11-17 18:57
怎么说呢没啥意思,因为别人可以反编译你的软件,把判断去掉重新抓包。

魂总太聪明了

夏末雨蝉 发表于 2023-11-17 19:39:23

创世魂 发表于 2023-11-17 18:57
怎么说呢没啥意思,因为别人可以反编译你的软件,把判断去掉重新抓包。

说的谁都会反编译一样

米饭 发表于 2023-11-17 21:01:44

夏末雨蝉 发表于 2023-11-17 19:39
说的谁都会反编译一样

能想到抓包的人就大差不差了 正常用户谁抓你包:噜阿噜

liyulun 发表于 2023-11-18 07:35:54

像我这样的,不会Java,但是会抓包。   防止我这样水平的人嘛!如果真是高手,怎么都难不住????

对吧

liyulun 发表于 2023-11-18 08:21:42

这个示例代码通过遍历网络接口,检查是否有虚拟网络接口同时处于启用状态,并且不是回环接口来判断VPN服务是否开启。如果找到了符合条件的虚拟网络接口,则认为VPN服务已开启。在Java中,可以使用Java的网络套接字(Socket)来判断设备的VPN服务是否开启。以下是一个示例代码:```java import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket;public class VPNChecker {   public static boolean isVPNEnabled() {         try {             Socket socket = new Socket();             // 使用VPN服务的默认网关地址和端口进行连接             InetSocketAddress vpnAddress = new InetSocketAddress("10.0.0.1", 80);             socket.connect(vpnAddress, 2000); // 设置连接超时时间为2秒             socket.close();             return false; // 如果连接成功,表示VPN服务未开启         } catch (IOException e) {             return true; // 如果连接失败,表示VPN服务已开启         }   }      public static void main(String[] args) {         boolean vpnEnabled = isVPNEnabled();         System.out.println("VPN服务是否开启:" + vpnEnabled);   } } ```在上面的示例代码中,我们使用Socket来尝试连接VPN服务的默认网关地址和端口。如果连接成功,表示VPN服务未开启;如果连接失败,表示VPN服务已开启。根据连接的结果,我们可以返回逻辑型真或假来判断VPN服务是否开启。这段Java代码,如何写到火山?

创世魂 发表于 2023-11-20 12:15:22

liyulun 发表于 2023-11-18 08:21
这个示例代码通过遍历网络接口,检查是否有虚拟网络接口同时处于启用状态,并且不是回环接口来判断VPN服务 ...
试试这个吧,网上找的。



<火山程序 类型 = "通常" 版本 = 1 />

方法 VPN是否开启 <类型 = 逻辑型 @安卓.权限需求 = 安卓权限.获取网络状态 @java.导入 = "android.net.ConnectivityManager"
      @java.导入 = "android.net.NetworkInfo" @java.导入 = "android.content.Context" @禁止流程检查 = 真>
{
    @   ConnectivityManager cm = (ConnectivityManager) @dt<应用程序>.sGetApp().getSystemService(Context.CONNECTIVITY_SERVICE);
    @   if (cm != null) {
    @         NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    @         // 注意:在API 23及以上,建议使用NetworkCapabilities来替代过时的getNetworkInfo()方法。
    @         if (networkInfo != null && networkInfo.isConnected()) {
    @             if (networkInfo.getType() == ConnectivityManager.TYPE_VPN) {
    @               return true; // VPN连接处于活动状态
    @             }
    @         }
    @   }
    @   return false; // VPN连接未激活或者检测失败

}


页: [1]
查看完整版本: 安卓请问一下,防抓包如何判断V,P-N是否开启?