diff --git a/client/LoginServer.cpp b/client/LoginServer.cpp index 611181e..f425577 100644 --- a/client/LoginServer.cpp +++ b/client/LoginServer.cpp @@ -326,15 +326,12 @@ LOGIN_INFOR GetLoginInfo(DWORD dwSpeed, const CONNECT_ADDRESS& conn) std::string loc = cfg.GetStr("settings", "location", ""); std::string pubIP = cfg.GetStr("settings", "public_ip", ""); auto ip_time = cfg.GetInt("settings", "ip_time"); + bool timeout = ip_time <= 0 || (time(0) - ip_time > 7 * 86400); IPConverter cvt; - if (loc.empty()) { - std::string ip = cvt.getPublicIP(); - if (pubIP.empty()) pubIP = ip; + if (loc.empty() || pubIP.empty() || timeout) { + pubIP = cvt.getPublicIP(); loc = cvt.GetGeoLocation(pubIP); cfg.SetStr("settings", "location", loc); - } - if ( pubIP.empty() || ip_time <= 0 || (time(0)-ip_time>7*86400) ) { - pubIP = cvt.getPublicIP(); cfg.SetStr("settings", "public_ip", pubIP); cfg.SetInt("settings", "ip_time", time(0)); } diff --git a/common/location.h b/common/location.h index 30bea1c..2c6be2b 100644 --- a/common/location.h +++ b/common/location.h @@ -190,7 +190,7 @@ public: hInternet = InternetOpen("Mozilla/5.0", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); if (!hInternet) return ""; - hConnect = InternetOpenUrl(hInternet, "https://api64.ipify.org", NULL, 0, INTERNET_FLAG_RELOAD | INTERNET_FLAG_SECURE, 0); + hConnect = InternetOpenUrl(hInternet, "https://api.ipify.org", NULL, 0, INTERNET_FLAG_RELOAD | INTERNET_FLAG_SECURE, 0); if (!hConnect) { InternetCloseHandle(hInternet); return "";