Java URLConnection использует неправильный IPV - PullRequest
0 голосов
/ 21 сентября 2019

поэтому я создал скрипт php, который возвращает IP-адрес пользователя, и когда я открываю его в браузере, он возвращает IP-адрес IPV6 (если у пользователя есть IPV6 или он вернет IPV4).

enter image description here

Но когда я делаю URLConnection к той же ссылке, используя Java, он выводит IPV4.

enter image description here

Это код, который я использую в своем java-приложении вместе с URL-адресом моего сайта.

String ip = new JSONObject(new BufferedReader(new InputStreamReader(LynxClient.getConnection(new URL("https://lynxclient.com/getip.php")).getInputStream())).readLine()).getString("ip");
System.out.println(ip);


public static HttpsURLConnection getConnection(URL url) throws IOException {
    HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestMethod("GET");
    conn.setRequestProperty("User-Agent", "Mozilla/4.76");
    conn.setUseCaches(false);
    return conn;
}

и вот мой PHP-код для моего сайта.

<?php
$ip = null;
if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
    $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}

echo json_encode(array('ip' => $ip));

Так что моя проблема в браузере, и мое java-приложение возвращает неправильный IP-адрес, который я хочу, чтобы они оба были одинаковыми, я не уверен, что здесь не так, я проверил некоторые темы, созданные на SO, относительно этого, но ни один не имеетпомог мне до сих пор.

...