Added IP display in connection test
https://github.com/2dust/v2rayNG/issues/4489
This commit is contained in:
@@ -103,6 +103,7 @@ object AppConfig {
|
|||||||
const val TG_CHANNEL_URL = "https://t.me/github_2dust"
|
const val TG_CHANNEL_URL = "https://t.me/github_2dust"
|
||||||
const val DELAY_TEST_URL = "https://www.gstatic.com/generate_204"
|
const val DELAY_TEST_URL = "https://www.gstatic.com/generate_204"
|
||||||
const val DELAY_TEST_URL2 = "https://www.google.com/generate_204"
|
const val DELAY_TEST_URL2 = "https://www.google.com/generate_204"
|
||||||
|
const val IP_API_Url = "https://api.ip.sb/geoip"
|
||||||
|
|
||||||
/** DNS server addresses. */
|
/** DNS server addresses. */
|
||||||
const val DNS_PROXY = "1.1.1.1"
|
const val DNS_PROXY = "1.1.1.1"
|
||||||
|
|||||||
11
V2rayNG/app/src/main/java/com/v2ray/ang/dto/IPAPIInfo.kt
Normal file
11
V2rayNG/app/src/main/java/com/v2ray/ang/dto/IPAPIInfo.kt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package com.v2ray.ang.dto
|
||||||
|
|
||||||
|
data class IPAPIInfo(
|
||||||
|
var ip: String? = null,
|
||||||
|
var city: String? = null,
|
||||||
|
var region: String? = null,
|
||||||
|
var region_code: String? = null,
|
||||||
|
var country: String? = null,
|
||||||
|
var country_name: String? = null,
|
||||||
|
var country_code: String? = null
|
||||||
|
)
|
||||||
@@ -6,8 +6,10 @@ import android.text.TextUtils
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import com.v2ray.ang.AppConfig
|
import com.v2ray.ang.AppConfig
|
||||||
import com.v2ray.ang.R
|
import com.v2ray.ang.R
|
||||||
|
import com.v2ray.ang.dto.IPAPIInfo
|
||||||
import com.v2ray.ang.extension.responseLength
|
import com.v2ray.ang.extension.responseLength
|
||||||
import com.v2ray.ang.util.HttpUtil
|
import com.v2ray.ang.util.HttpUtil
|
||||||
|
import com.v2ray.ang.util.JsonUtil
|
||||||
import kotlinx.coroutines.isActive
|
import kotlinx.coroutines.isActive
|
||||||
import libv2ray.Libv2ray
|
import libv2ray.Libv2ray
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@@ -164,6 +166,14 @@ object SpeedtestManager {
|
|||||||
return Pair(elapsed, result)
|
return Pair(elapsed, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getRemoteIPInfo(): String? {
|
||||||
|
val httpPort = SettingsManager.getHttpPort()
|
||||||
|
var content = HttpUtil.getUrlContent(AppConfig.IP_API_Url, 5000, httpPort) ?: return null
|
||||||
|
|
||||||
|
var ipInfo = JsonUtil.fromJson(content, IPAPIInfo::class.java) ?: return null
|
||||||
|
return "(${ipInfo.country_code}) ${ipInfo.ip}"
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the version of the V2Ray library.
|
* Gets the version of the V2Ray library.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.v2ray.ang.dto.ProfileItem
|
|||||||
import com.v2ray.ang.extension.toast
|
import com.v2ray.ang.extension.toast
|
||||||
import com.v2ray.ang.handler.MmkvManager
|
import com.v2ray.ang.handler.MmkvManager
|
||||||
import com.v2ray.ang.handler.SettingsManager
|
import com.v2ray.ang.handler.SettingsManager
|
||||||
|
import com.v2ray.ang.handler.SpeedtestManager
|
||||||
import com.v2ray.ang.handler.V2rayConfigManager
|
import com.v2ray.ang.handler.V2rayConfigManager
|
||||||
import com.v2ray.ang.util.MessageUtil
|
import com.v2ray.ang.util.MessageUtil
|
||||||
import com.v2ray.ang.util.PluginUtil
|
import com.v2ray.ang.util.PluginUtil
|
||||||
@@ -231,7 +232,12 @@ object V2RayServiceManager {
|
|||||||
val result = if (time == -1L) {
|
val result = if (time == -1L) {
|
||||||
service.getString(R.string.connection_test_error, errstr)
|
service.getString(R.string.connection_test_error, errstr)
|
||||||
} else {
|
} else {
|
||||||
service.getString(R.string.connection_test_available, time)
|
buildString {
|
||||||
|
append(service.getString(R.string.connection_test_available, time))
|
||||||
|
SpeedtestManager.getRemoteIPInfo()?.let { ip ->
|
||||||
|
append("\n$ip")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageUtil.sendMsg2UI(service, AppConfig.MSG_MEASURE_DELAY_SUCCESS, result)
|
MessageUtil.sendMsg2UI(service, AppConfig.MSG_MEASURE_DELAY_SUCCESS, result)
|
||||||
|
|||||||
@@ -304,7 +304,7 @@
|
|||||||
<string name="connection_test_pending">Check Connectivity</string>
|
<string name="connection_test_pending">Check Connectivity</string>
|
||||||
<string name="connection_test_testing">Testing…</string>
|
<string name="connection_test_testing">Testing…</string>
|
||||||
<string name="connection_test_testing_count">Testing %d configurations…</string>
|
<string name="connection_test_testing_count">Testing %d configurations…</string>
|
||||||
<string name="connection_test_available">Success: HTTP connection took %dms</string>
|
<string name="connection_test_available">Success: Connection took %dms</string>
|
||||||
<string name="connection_test_error">Fail to detect internet connection: %s</string>
|
<string name="connection_test_error">Fail to detect internet connection: %s</string>
|
||||||
<string name="connection_test_fail">Internet Unavailable</string>
|
<string name="connection_test_fail">Internet Unavailable</string>
|
||||||
<string name="connection_test_error_status_code">Error code: #%d</string>
|
<string name="connection_test_error_status_code">Error code: #%d</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user