apk(点击下载) / l.java


package com.netease.nimlib.s;

import android.os.AsyncTask;
import android.text.TextUtils;
import androidx.core.os.EnvironmentCompat;
import com.huawei.hms.support.hianalytics.HiAnalyticsConstant;
import com.netease.nimlib.c;
import com.netease.nimlib.f.g;
import com.netease.nimlib.sdk.ServerAddresses;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import org.json.JSONArray;
import org.json.JSONObject;

/* compiled from: NetPing */
public class l {
    private static AtomicBoolean a = new AtomicBoolean(false);
    private a b = null;

    private l() {
    }

    public static void c() {
        try {
            StringBuilder sb = new StringBuilder();
            sb.append("network info: ");
            sb.append("net_type=" + h() + ", " + "net_available=" + m.b(c.e()) + ", " + "net_connected=" + m.c(c.e()));
            com.netease.nimlib.l.b.b.a.c("NetPing", sb.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /* access modifiers changed from: private */
    public static List<String> g() {
        ArrayList arrayList = new ArrayList();
        for (String str : com.netease.nimlib.net.a.b.a.a.a().b()) {
            String c = c(str);
            if (!arrayList.contains(c)) {
                arrayList.add(c);
            }
        }
        ServerAddresses l = c.l();
        if (l == null) {
            arrayList.add(c(g.j()));
            arrayList.add(c(g.l()));
            arrayList.add(c("www.163.com"));
        } else {
            if (!TextUtils.isEmpty(l.nosUpload)) {
                arrayList.add(c(l.nosUpload));
            }
            if (!TextUtils.isEmpty(l.nosDownload)) {
                arrayList.add(c(l.nosDownload));
            }
        }
        return arrayList;
    }

    /* access modifiers changed from: private */
    public static String h() {
        int k = m.k(c.e());
        if (k == 1) {
            return "2g";
        }
        if (k == 2) {
            return "3g";
        }
        if (k == 3) {
            return "4g";
        }
        return k == 10 ? "wifi" : EnvironmentCompat.MEDIA_UNKNOWN;
    }

    public static l a() {
        return new l();
    }

    /* access modifiers changed from: private */
    public static String d(String str) {
        StringBuilder sb = new StringBuilder();
        try {
            Runtime runtime = Runtime.getRuntime();
            Process exec = runtime.exec("ping -c 3 -w 15 " + str);
            if (exec.waitFor() == 0) {
                sb.append("ping " + str + " success\n");
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(exec.getInputStream()));
                while (true) {
                    String readLine = bufferedReader.readLine();
                    if (readLine == null) {
                        break;
                    }
                    sb.append(readLine + "\n");
                }
            } else {
                com.netease.nimlib.l.b.b.a.c("NetPing", "unable to ping host, try socket connect...");
                boolean a2 = a(str, 0);
                StringBuilder sb2 = new StringBuilder();
                sb2.append("connect ");
                sb2.append(a2 ? "success" : "failed");
                sb2.append("\n");
                sb.append(sb2.toString());
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (IOException e2) {
            e2.printStackTrace();
        }
        return sb.toString();
    }

    /* access modifiers changed from: private */
    public static JSONObject e(String str) {
        int indexOf;
        int indexOf2;
        JSONObject jSONObject = new JSONObject();
        try {
            if (str.contains("0% packet loss")) {
                int indexOf3 = str.indexOf("/mdev = ");
                if (indexOf3 == -1 || (indexOf2 = str.indexOf(" ms\n", indexOf3)) == -1) {
                    return null;
                }
                String[] split = str.substring(indexOf3 + 8, indexOf2).split("/");
                if (split.length != 4) {
                    return null;
                }
                jSONObject.put("min", Double.valueOf(split[0]));
                jSONObject.put("avg", Double.valueOf(split[1]));
                jSONObject.put("max", Double.valueOf(split[2]));
                jSONObject.put("mdev", Double.valueOf(split[3]));
                jSONObject.put("loss", 0);
            } else if (str.contains("100% packet loss")) {
                jSONObject.put("loss", 100);
            } else if (str.contains("% packet loss")) {
                int indexOf4 = str.indexOf("/mdev = ");
                if (indexOf4 == -1 || (indexOf = str.indexOf(" ms\n", indexOf4)) == -1) {
                    return null;
                }
                String substring = str.substring(indexOf4 + 8, indexOf);
                String[] split2 = substring.split("/");
                if (split2.length != 4) {
                    return null;
                }
                int indexOf5 = substring.indexOf("% packet loss");
                int indexOf6 = substring.indexOf("received");
                if (indexOf5 == -1 || indexOf6 == -1) {
                    return null;
                }
                String trim = substring.substring(indexOf6 + 10, indexOf5).trim();
                jSONObject.put("min", Double.valueOf(split2[0]));
                jSONObject.put("avg", Double.valueOf(split2[1]));
                jSONObject.put("max", Double.valueOf(split2[2]));
                jSONObject.put("mdev", Double.valueOf(split2[3]));
                jSONObject.put("loss", Integer.valueOf(trim));
            } else if (str.contains("connect") && str.contains("success")) {
                jSONObject.put("result", "connect success");
            } else if (str.contains("failed")) {
                jSONObject.put("result", "failed");
            }
        } catch (Exception e) {
            e.printStackTrace();
            com.netease.nimlib.l.b.b.a.d("NetPing", "getPingStatus error", e);
        }
        return jSONObject;
    }

    public void b() {
        if (!m.b(c.e())) {
            com.netease.nimlib.l.b.b.a.c("NetPing", "unable to start ping, as network is unavailable");
        } else if (a.get()) {
            com.netease.nimlib.l.b.b.a.c("NetPing", "cancel start ping, as net ping is running...");
        } else if (this.b == null) {
            a aVar = new a();
            this.b = aVar;
            aVar.execute(new Void[0]);
            a.set(true);
        }
    }

    private static boolean a(String str, int i) {
        boolean z;
        if (i == 0) {
            i = 80;
        }
        Socket socket = new Socket();
        try {
            socket.connect(new InetSocketAddress(str, i), 15000);
            z = socket.isConnected();
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (IOException e2) {
            e2.printStackTrace();
            try {
                socket.close();
            } catch (IOException e3) {
                e3.printStackTrace();
            }
            z = false;
        } catch (Throwable th) {
            try {
                socket.close();
            } catch (IOException e4) {
                e4.printStackTrace();
            }
            throw th;
        }
        StringBuilder sb = new StringBuilder();
        sb.append("socket connect ");
        sb.append(str);
        sb.append(z ? " success" : " failed!!!");
        com.netease.nimlib.l.b.b.a.c("NetPing", sb.toString());
        return z;
    }

    private static String c(String str) {
        int lastIndexOf = str.lastIndexOf(58);
        return lastIndexOf > 0 ? str.substring(0, lastIndexOf) : str;
    }

    /* access modifiers changed from: private */
    /* compiled from: NetPing */
    public static class a extends AsyncTask<Void, Void, Void> {
        private a() {
        }

        /* access modifiers changed from: protected */
        /* renamed from: a */
        public Void doInBackground(Void... voidArr) {
            List<String> g = l.g();
            if (!(g == null || g.size() == 0)) {
                com.netease.nimlib.l.b.b.a.c("NetPing", "***** Net ping start, host list size=" + g.size() + " *****");
                JSONObject jSONObject = new JSONObject();
                JSONArray jSONArray = new JSONArray();
                for (String str : g) {
                    com.netease.nimlib.l.b.b.a.c("NetPing", "ping host " + str);
                    JSONObject e = l.e(l.d(str));
                    if (e != null) {
                        try {
                            e.put("ip", str);
                            jSONArray.put(e);
                        } catch (Exception e2) {
                            e2.printStackTrace();
                        }
                    }
                    com.netease.nimlib.l.b.b.a.c("NetPing", "ping host result=" + e);
                }
                try {
                    jSONObject.put(HiAnalyticsConstant.BI_KEY_NET_TYPE, l.h());
                    Object obj = "true";
                    jSONObject.put("net_available", m.b(c.e()) ? obj : "false");
                    if (!m.c(c.e())) {
                        obj = "false";
                    }
                    jSONObject.put("net_connected", obj);
                    jSONObject.put("result", jSONArray);
                    com.netease.nimlib.l.b.b.a.c("NetPing", "***** Net ping end, total result=" + jSONObject.toString() + " ***** ");
                } catch (Exception e3) {
                    e3.printStackTrace();
                    com.netease.nimlib.l.b.b.a.d("NetPing", "NetPing get network status error", e3);
                }
                l.a.set(false);
            }
            return null;
        }

        /* access modifiers changed from: protected */
        public void onPreExecute() {
            super.onPreExecute();
        }

        /* access modifiers changed from: protected */
        /* renamed from: a */
        public void onPostExecute(Void r1) {
            super.onPostExecute(r1);
        }
    }
}