Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Grigorev <sleuthhound@gmail.com>2025-07-27 18:24:11 +0300
committerGitHub <noreply@github.com>2025-07-27 18:24:11 +0300
commit0ad708b1b633d7f7f08c18f9ed358809c9faa8b7 (patch)
tree68a7b712cce87430924d5311647b75652f982a8b /web/service
parent71f13ebcbd1d15eb8d5bd6b88ddb2c96e08a287a (diff)
Added list of services for get public IP address (IP v4 and v6) (#3216)
* Fixed get public IP address * Remove https://ifconfig.io/ip and https://ipinfo.tw/ip --------- Co-authored-by: Mikhail Grigorev <grigorev_mm@magnit.ru>
Diffstat (limited to 'web/service')
-rw-r--r--web/service/server.go24
1 files changed, 16 insertions, 8 deletions
diff --git a/web/service/server.go b/web/service/server.go
index d0d4bd18..1bd8a55d 100644
--- a/web/service/server.go
+++ b/web/service/server.go
@@ -234,23 +234,31 @@ func (s *ServerService) GetStatus(lastStatus *Status) *Status {
}
// IP fetching with caching
+ showIp4ServiceLists := []string{"https://api.ipify.org", "https://4.ident.me"}
+ showIp6ServiceLists := []string{"https://api6.ipify.org", "https://6.ident.me"}
+
if s.cachedIPv4 == "" {
- s.cachedIPv4 = getPublicIP("https://api.ipify.org")
- if s.cachedIPv4 == "N/A" {
- s.cachedIPv4 = getPublicIP("https://4.ident.me")
+ for _, ip4Service := range showIp4ServiceLists {
+ s.cachedIPv4 = getPublicIP(ip4Service)
+ if s.cachedIPv4 != "N/A" {
+ break
+ }
}
}
if s.cachedIPv6 == "" && !s.noIPv6 {
- s.cachedIPv6 = getPublicIP("https://api6.ipify.org")
- if s.cachedIPv6 == "N/A" {
- s.cachedIPv6 = getPublicIP("https://6.ident.me")
- if s.cachedIPv6 == "N/A" {
- s.noIPv6 = true
+ for _, ip6Service := range showIp6ServiceLists {
+ s.cachedIPv6 = getPublicIP(ip6Service)
+ if s.cachedIPv6 != "N/A" {
+ break
}
}
}
+ if s.cachedIPv6 == "N/A" {
+ s.noIPv6 = true
+ }
+
status.PublicIP.IPv4 = s.cachedIPv4
status.PublicIP.IPv6 = s.cachedIPv6