导航菜单

页面标题

页面副标题

Easycash v3.75.13 - NetworkUtils.java 源代码

正在查看: Easycash v3.75.13 应用的 NetworkUtils.java JAVA 源代码文件

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


package com.lingyue.supertoolkit.phonetools;

import android.annotation.TargetApi;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import com.lingyue.supertoolkit.customtools.Logger;
import com.qiniu.android.utils.Constants;
import cz.msebera.android.httpclient.conn.util.InetAddressUtils;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Collections;
import java.util.Enumeration;

public class NetworkUtils {
    public static String a(Context context) {
        try {
            int ipAddress = ((WifiManager) context.getSystemService(Constants.NETWORK_WIFI)).getConnectionInfo().getIpAddress();
            if (ipAddress != 0) {
                Logger c = Logger.c();
                StringBuilder sb = new StringBuilder();
                sb.append("WIFI network, IP=");
                long j = ipAddress;
                sb.append(g(j));
                c.a(sb.toString());
                return g(j);
            }
        } catch (Exception unused) {
            Logger.c().e("当前不在 WIFI 环境");
        }
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                Enumeration<InetAddress> inetAddresses = networkInterfaces.nextElement().getInetAddresses();
                while (inetAddresses.hasMoreElements()) {
                    InetAddress nextElement = inetAddresses.nextElement();
                    if (!nextElement.isLoopbackAddress() && InetAddressUtils.isIPv4Address(nextElement.getHostAddress().toUpperCase())) {
                        Logger.c().a("Cellphone network IPv4=" + nextElement.getHostAddress());
                        return nextElement.getHostAddress();
                    }
                }
            }
        } catch (SocketException unused2) {
            Logger.c().b("未获取到当前设备移动网络IP");
        }
        Logger.c().h("未获取到当前设备ip");
        return "127.0.0.1";
    }

    public static String b(Context context) {
        return Build.VERSION.SDK_INT >= 23 ? c() : d(context);
    }

    @TargetApi(23)
    private static String c() {
        try {
            for (NetworkInterface networkInterface : Collections.list(NetworkInterface.getNetworkInterfaces())) {
                if (networkInterface.getName().equalsIgnoreCase("wlan0")) {
                    byte[] hardwareAddress = networkInterface.getHardwareAddress();
                    if (hardwareAddress == null) {
                        return "";
                    }
                    StringBuilder sb = new StringBuilder();
                    for (byte b : hardwareAddress) {
                        sb.append(Integer.toHexString(b & 255));
                        sb.append(":");
                    }
                    if (sb.length() > 0) {
                        sb.deleteCharAt(sb.length() - 1);
                    }
                    return sb.toString();
                }
            }
            return "02:00:00:00:00:00";
        } catch (Exception e) {
            Logger.c().b(e.toString());
            return "02:00:00:00:00:00";
        }
    }

    private static String d(Context context) {
        try {
            WifiInfo connectionInfo = ((WifiManager) context.getSystemService(Constants.NETWORK_WIFI)).getConnectionInfo();
            return connectionInfo.getMacAddress() != null ? connectionInfo.getMacAddress() : "";
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    private static String e(int i) {
        switch (i) {
            case 1:
                return "GPRS";
            case 2:
                return "EDGE";
            case 3:
                return "UMTS";
            case 4:
                return "CDMA";
            case 5:
                return "CDMA - EvDo rev. 0";
            case 6:
                return "CDMA - EvDo rev. A";
            case 7:
                return "CDMA - 1xRTT";
            case 8:
                return "HSDPA";
            case 9:
                return "HSUPA";
            case 10:
                return "HSPA";
            case 11:
                return "iDEN";
            case 12:
                return "CDMA - EvDo rev. B";
            case 13:
                return "LTE";
            case 14:
                return "CDMA - eHRPD";
            case 15:
                return "HSPA+";
            case 16:
                return "GSM";
            case 17:
                return "TD_SCDMA";
            case 18:
                return "IWLAN";
            default:
                return "UNKNOWN";
        }
    }

    public static String f(Context context) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService("connectivity");
        if (connectivityManager != null) {
            try {
                NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
                if (activeNetworkInfo != null) {
                    int type = activeNetworkInfo.getType();
                    if (type == 0) {
                        return e(activeNetworkInfo.getSubtype());
                    }
                    if (type == 1) {
                        return "WIFI";
                    }
                }
            } catch (Exception unused) {
                return "UNAUTHORIZED";
            }
        }
        return e(0);
    }

    public static String g(long j) {
        return (j & 255) + "." + ((j >> 8) & 255) + "." + ((j >> 16) & 255) + "." + ((j >> 24) & 255);
    }

    public static boolean h(Context context) {
        if (context == null) {
            return true;
        }
        NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isAvailable();
    }
}