Javaプロジェクトでは、Webサイトの一意の識別子としてユーザーのIPアドレスを使用します。ユーザーがIPv4アドレスしか持っていない場合は、すべて正常に動作します。JavaにIPv4のIPv6アドレスを報告するようにする
しかし、私の問題は、ユーザーがIPv6アドレスを持っている場合、JavaがIPv4アドレスを報告し、ブラウザがIPv6アドレスを報告する(PHPの$ _SERVER ['REMOTE_ADDR']呼び出しで)ということです。
どのようにしてJavaのIPv6アドレスがIPv4であると報告するのですか?
編集:いくつかの明確化:
これは一人だけがファイルをダウンロードできるようにするために使用されます。複数の人が同じPCを使用するかどうかは重要ではありません。
ユーザーがhttp://whatismyipaddress.com/にクロムを送信すると、IPv6アドレスが表示されます。
しかし、今私はhttp://whatismyipaddress.com/を取得するためにJavaを使用すると、IPv4アドレスが表示されます。なぜこれがあり、どのようにしてChromeに表示されるIPv6アドレスを表示させることができますか?
編集2:私が使用するコード
public static String get(String url) throws WebFetchException {
String result = "";
try {
URL url1 = new URL(url);
HttpsURLConnection urlConn = (HttpsURLConnection) url1.openConnection();
urlConn.setConnectTimeout(8 * 1000);
urlConn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String text;
while ((text = in.readLine()) != null) {
result = result + text;
}
in.close();
}
} catch (Exception e) {
throw new WebFetchException("There was an exception while fetching the requested page: " + url);
}
return result;
}
まず、IPアドレスは(完全に)固有の識別子ではありません。それがipv4かipv6かどうかは関係ありません。 「JavaがIPv4アドレスを報告する」とはどういう意味ですか? –
あなたのスキームは、同じマシン上の複数のユーザーに対しては機能しません。 –
どのようにipデータを取得しますか?特定のタイプを使用しますか?コードはありますか? –