iApp調(diào)用java檢測手機是否使用代理或者VPN訪問軟件,防止抓包

1.新建一個vpn.mjava文件,代碼如下:

/**
* 檢測是否使用代理(WiFi狀態(tài)下的,避免被抓包),如果在使用返回true,反之返回flase
*/
private boolean isWifiProxy(){
final boolean is_ics_or_later = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
String proxyAddress;
int proxyPort;
if (is_ics_or_later) {
proxyAddress = System.getProperty("http.proxyHost");
String portstr = System.getProperty("http.proxyPort");
proxyPort = Integer.parseInt((portstr != null ? portstr : "-1"));
System.out.println(proxyAddress + "~");
System.out.println("port = " + proxyPort);
}else {
proxyAddress = android.net.Proxy.getHost(MainActivity.this);
proxyPort = android.net.Proxy.getPort(MainActivity.this);
Log.e("address = ", proxyAddress + "~");
Log.e("port = ", proxyPort + "~");
}
return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
}
/**
* 檢測是否正在使用VPN,如果在使用返回true,反之返回flase
*/
public static boolean isVpnUsed() {
try {
Enumeration niList = NetworkInterface.getNetworkInterfaces();
if(niList != null) {
for (NetworkInterface intf : Collections.list(niList)) {
if(!intf.isUp() || intf.getInterfaceAddresses().size() == 0) {
continue;
}
Log.d("-----", "isVpnUsed() NetworkInterface Name: " + intf.getName());
if ("tun0".equals(intf.getName()) || "ppp0".equals(intf.getName())){
return true; // The VPN is up
}
}
}
} catch (Throwable e) {
e.printStackTrace();
}
return false;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容