导航菜单

页面标题

页面副标题

远离手机 v4.9.11 - II11I111III1.java 源代码

正在查看: 远离手机 v4.9.11 应用的 II11I111III1.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.lijianqiang12.silent;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.Socket;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

class II11I111III1 {
    private static final String Il1IlII1 = "ping";
    private static final String lI11111lI1 = "ping ok";
    private static final IlIl11IIIl lIIl1I1I = II11l1lI11.IIll11IllI1l("Pinger");
    private final ExecutorService IIllIl1llII = Executors.newSingleThreadExecutor();
    private final int Il11lI1III1;
    private final String IlllIll1I1I;

    private class IlllIll1I1I implements Callable<Boolean> {
        private IlllIll1I1I() {
        }

        @Override
        public Boolean call() throws Exception {
            return Boolean.valueOf(II11I111III1.this.lI11111lI1());
        }
    }

    II11I111III1(String str, int i) {
        this.IlllIll1I1I = (String) I1l1lll1lIl.lIIl1I1I(str);
        this.Il11lI1III1 = i;
    }

    private String Il11lI1III1() {
        return String.format(Locale.US, "http://%s:%d/%s", this.IlllIll1I1I, Integer.valueOf(this.Il11lI1III1), Il1IlII1);
    }

    private List<Proxy> IlllIll1I1I() {
        try {
            return ProxySelector.getDefault().select(new URI(Il11lI1III1()));
        } catch (URISyntaxException e) {
            throw new IllegalStateException(e);
        }
    }

    public boolean lI11111lI1() throws II1lllIIIl {
        Ill1I1ll1ll ill1I1ll1ll = new Ill1I1ll1ll(Il11lI1III1());
        try {
            try {
                byte[] bytes = lI11111lI1.getBytes();
                ill1I1ll1ll.IIllIl1llII(0L);
                byte[] bArr = new byte[bytes.length];
                ill1I1ll1ll.read(bArr);
                boolean equals = Arrays.equals(bytes, bArr);
                lIIl1I1I.Ill11IIlII1("Ping response: `" + new String(bArr) + "`, pinged? " + equals);
                return equals;
            } catch (II1lllIIIl e) {
                lIIl1I1I.IIllIl1llII("Error reading ping response", e);
                ill1I1ll1ll.close();
                return false;
            }
        } finally {
            ill1I1ll1ll.close();
        }
    }

    boolean Il1IlII1(int i, int i2) {
        I1l1lll1lIl.IlllIll1I1I(i >= 1);
        I1l1lll1lIl.IlllIll1I1I(i2 > 0);
        int i3 = 0;
        while (i3 < i) {
            try {
            } catch (InterruptedException e) {
                e = e;
                lIIl1I1I.IIllIl1llII("Error pinging server due to unexpected error", e);
            } catch (ExecutionException e2) {
                e = e2;
                lIIl1I1I.IIllIl1llII("Error pinging server due to unexpected error", e);
            } catch (TimeoutException unused) {
                lIIl1I1I.l1I111lllI1l1("Error pinging server (attempt: " + i3 + ", timeout: " + i2 + "). ");
            }
            if (((Boolean) this.IIllIl1llII.submit(new IlllIll1I1I()).get(i2, TimeUnit.MILLISECONDS)).booleanValue()) {
                return true;
            }
            i3++;
            i2 *= 2;
        }
        String format = String.format(Locale.US, "Error pinging server (attempts: %d, max timeout: %d). If you see this message, please, report at https://github.com/danikula/AndroidVideoCache/issues/134. Default proxies are: %s", Integer.valueOf(i3), Integer.valueOf(i2 / 2), IlllIll1I1I());
        lIIl1I1I.IIllIl1llII(format, new II1lllIIIl(format));
        return false;
    }

    void lII1lI1Illl(Socket socket) throws IOException {
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("HTTP/1.1 200 OK\n\n".getBytes());
        outputStream.write(lI11111lI1.getBytes());
    }

    boolean lIIl1I1I(String str) {
        return Il1IlII1.equals(str);
    }
}