正在查看: Easycash v3.75.13 应用的 NetworkUtils.java JAVA 源代码文件
本页面展示 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();
}
}