From 682b7e1250c7fa508548bd66706b6d63b5149bf5 Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Mon, 15 Aug 2022 16:59:24 +0200 Subject: [PATCH] feat: moved ip request from the ipify service to the own server --- Modules/Net/readers.swift | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/Modules/Net/readers.swift b/Modules/Net/readers.swift index 2fa947d7..4cd17ebd 100644 --- a/Modules/Net/readers.swift +++ b/Modules/Net/readers.swift @@ -354,26 +354,21 @@ internal class UsageReader: Reader { } private func getPublicIP() { - do { - if let url = URL(string: "https://api.ipify.org") { - let value = try String(contentsOf: url) - if !value.contains("") && self.isIPv4(value) { - self.usage.raddr.v4 = value - } - } - } catch let err { - error("get public ipv4: \(err)", log: self.log) + struct Addr_s: Decodable { + let ipv4: String? + let ipv6: String? } - do { - if let url = URL(string: "https://api64.ipify.org") { - let value = try String(contentsOf: url) - if self.usage.raddr.v4 != value && !self.isIPv4(value) { - self.usage.raddr.v6 = value - } + if let url = URL(string: "https://api.serhiy.io/v1/stats/ip"), + let data = try? Data(contentsOf: url), + let addr = try? JSONDecoder().decode(Addr_s.self, from: data) { + + if let ip = addr.ipv4, self.isIPv4(ip) { + self.usage.raddr.v4 = ip + } + if let ip = addr.ipv6, !self.isIPv4(ip) { + self.usage.raddr.v6 = ip } - } catch let err { - error("get public ipv6: \(err)", log: self.log) } }