From 0ad708b1b633d7f7f08c18f9ed358809c9faa8b7 Mon Sep 17 00:00:00 2001 From: Mikhail Grigorev Date: Sun, 27 Jul 2025 20:24:11 +0500 Subject: 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 --- web/service/server.go | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'web') 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 -- cgit v1.2.3