悦享送 v3.5.1版本的 MD5 值为:111dc8a16f422da8b2f1cf208abae9ea

以下内容为反编译后的 GetPublicIP.java 源代码,内容仅作参考


package com.x52im.rainbowchat.utils;

import android.os.AsyncTask;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

public class GetPublicIP extends AsyncTask<Void, Void, String> {
    private static final String TAG = "GetPublicIP";
    private OnIPFetchCompletedListener listener;

    public interface OnIPFetchCompletedListener {
        void onIPFetchCompleted(String str);
    }

    public GetPublicIP(OnIPFetchCompletedListener onIPFetchCompletedListener) {
        this.listener = onIPFetchCompletedListener;
    }

    @Override
    public String doInBackground(Void... voidArr) {
        String str = null;
        try {
            HttpsURLConnection httpsURLConnection = (HttpsURLConnection) new URL("https://api.ipify.org?format=json").openConnection();
            httpsURLConnection.setRequestMethod("GET");
            httpsURLConnection.setConnectTimeout(1000);
            httpsURLConnection.setReadTimeout(1000);
            if (httpsURLConnection.getResponseCode() == 200) {
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpsURLConnection.getInputStream()));
                StringBuilder sb = new StringBuilder();
                while (true) {
                    String readLine = bufferedReader.readLine();
                    if (readLine == null) {
                        break;
                    }
                    sb.append(readLine);
                }
                bufferedReader.close();
                str = sb.toString();
            } else {
                Log.e(TAG, "Response Code: " + httpsURLConnection.getResponseCode());
            }
            httpsURLConnection.disconnect();
        } catch (IOException e) {
            Log.e(TAG, "Error fetching public IP: " + e.getMessage());
        }
        return str;
    }

    @Override
    public void onPostExecute(String str) {
        OnIPFetchCompletedListener onIPFetchCompletedListener = this.listener;
        if (onIPFetchCompletedListener != null) {
            onIPFetchCompletedListener.onIPFetchCompleted(str);
        }
    }
}