بررسی روشن بودن فیلترشکن(VPN) کاربر در اندروید

گاهی اوقات نیاز هست که بررسی کنید آیا کاربر فیلتر شکن یا VPN گوشی اش روشن هست یاخیر، با استفاده از این تابع در جاوا و Basic 4 Android میتونید متوجه بشید که کاربر به پروکسی یا VPN متصل هست یا نه، ممکنه این VPN صرفاً یک فیلتر شکن نباشه.
ℹ️ خارج از پست: اگر میخواین بررسی کنید کاربرتون فقط از یک کشور خاص(ایران) باشه، باید IP کاربر رو بگیرید و بررسی کنید، که برای اینکار میتونید از سایت ipapi که اطلاعات رو بصورت جیسون میده دریافت و در اپلیکیشن استفاده کنید.
✅ نحوه استفاده تابع بررسی روشن یا خاموش بودن فیلتر شکن
۱٫ این دسترسی ها رو اضافه کنید به منیفست:
AddPermission(android.permission.ACCESS_NETWORK_STATE) AddPermission(android.permission.INTERNET)
۲٫ این کد inLine رو بین sub ها اضافه کنید:
</pre> #if java import java.net.NetworkInterface; import java.util.ArrayList; import java.util.Collections; import java.util.List; public boolean hasvpn(){ List<String> networkList = new ArrayList<String>(); try {//@cafetoseeh for (NetworkInterface networkInterface : Collections.list(NetworkInterface.getNetworkInterfaces())) { if (networkInterface.isUp()) networkList.add(networkInterface.getName()); } //@cafetoseeh } catch (Exception ex) { // } //@cafetoseeh return networkList.contains("tun0"); } #End If <pre>
ℹ️ دوستان جاوا کار میتونن مستقیماً از تابع بالا برای اینکار استفاده کنند.
۳٫ و استفاده(کتابخانه جاوا آبجکت رو تیک بزنید):
Dim j As JavaObject j.InitializeContext If j.RunMethod("hasvpn",Null)=True Then ToastMessageShow("فیلتر شکن شما روشن است",True) Else ToastMessageShow("VPN روشن نیست",True) End If