递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2417|回复: 7
打印 上一主题 下一主题

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

[复制链接]

57

主题

211

帖子

1056

积分

金牌会员

Rank: 6Rank: 6

积分
1056
跳转到指定楼层
楼主
发表于 2023-11-17 16:17:29 来自手机 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
就是判断设备是否开启vp  _n
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40410
8#
发表于 2023-11-20 12:15:22 | 只看该作者
liyulun 发表于 2023-11-18 08:21
这个示例代码通过遍历网络接口,检查是否有虚拟网络接口同时处于启用状态,并且不是回环接口来判断VPN服务 ...

试试这个吧,网上找的。



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

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

  16. }


复制代码
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

57

主题

211

帖子

1056

积分

金牌会员

Rank: 6Rank: 6

积分
1056
7#
 楼主| 发表于 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代码,如何写到火山?  
回复

使用道具 举报

57

主题

211

帖子

1056

积分

金牌会员

Rank: 6Rank: 6

积分
1056
6#
 楼主| 发表于 2023-11-18 07:35:54 | 只看该作者
像我这样的,不会Java,  但是会抓包。   防止我这样水平的人嘛!如果真是高手,怎么都难不住????

对吧
回复

使用道具 举报

2

主题

51

帖子

987

积分

高级会员

Rank: 4

积分
987
5#
发表于 2023-11-17 21:01:44 | 只看该作者
夏末雨蝉 发表于 2023-11-17 19:39
说的谁都会反编译一样

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

使用道具 举报

32

主题

128

帖子

1698

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1698
地板
发表于 2023-11-17 19:39:23 | 只看该作者
创世魂 发表于 2023-11-17 18:57
怎么说呢没啥意思,因为别人可以反编译你的软件,把判断去掉重新抓包。

说的谁都会反编译一样
回复

使用道具 举报

109

主题

460

帖子

2463

积分

金牌会员

Rank: 6Rank: 6

积分
2463
板凳
发表于 2023-11-17 19:02:38 | 只看该作者
创世魂 发表于 2023-11-17 18:57
怎么说呢没啥意思,因为别人可以反编译你的软件,把判断去掉重新抓包。

魂总太聪明了
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40410
沙发
发表于 2023-11-17 18:57:10 | 只看该作者
怎么说呢没啥意思,因为别人可以反编译你的软件,把判断去掉重新抓包。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-16 12:57 , Processed in 0.087545 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表