From d96d0c68cdb825afad10d09f56a5b9ec4a50cb91 Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Wed, 11 Jan 2023 16:02:31 +0200 Subject: [PATCH] Make sure the "responseCode" is "200-OK", before trying to get the InputStream in "UriBuilder.getPublicIP()". --- .../eu/openaire/urls_worker/util/UriBuilder.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/openaire/urls_worker/util/UriBuilder.java b/src/main/java/eu/openaire/urls_worker/util/UriBuilder.java index e144b32..73a90a1 100644 --- a/src/main/java/eu/openaire/urls_worker/util/UriBuilder.java +++ b/src/main/java/eu/openaire/urls_worker/util/UriBuilder.java @@ -56,23 +56,30 @@ public class UriBuilder { { String publicIpAddress = ""; HttpURLConnection conn = null; + String urlString = "https://api.ipify.org/"; try { - conn = (HttpURLConnection) new URL("https://api.ipify.org/").openConnection(); + conn = (HttpURLConnection) new URL(urlString).openConnection(); conn.setConnectTimeout(60_000); conn.setReadTimeout(60_000); conn.setRequestMethod("GET"); conn.connect(); + + int responseCode = conn.getResponseCode(); + if ( responseCode != 200 ) { + logger.warn("Cannot get the publicIP address for this machine, as \"" + urlString + "\" returned the HTTP-error-code: " + responseCode); + return null; + } + try ( BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream()))) { publicIpAddress = bf.readLine().trim(); } } catch (Exception e) { - logger.warn("Cannot get the publicIP address for this machine!", e); + logger.warn("Cannot get the publicIP address for this machine, from \"" + urlString + "\"!", e); return null; } finally { if ( conn != null ) conn.disconnect(); } - return publicIpAddress; }