3

API呼び出しを行っていますが、その呼び出しにはリクエストIPアドレスが必要です。ServletRequest.getRemoteAddr()を使用してリクエストのIPを取得しています。あるユーザーの場合、getRemoteAddr()はIPv4ではなくIPv6を返します。これはなぜですか?

私の理解では、IPv6はIPv4の拡張であり、ユーザーはIPv4ではなくIPv6を使用することを選択できます。これは、ユーザーまたはユーザーのISPがIPv6を使用していることを意味しますか?これはどのように機能しますか....IPv4と同等のものを取得する方法もありますか?

ありがとう。

4

1 に答える 1

3

ipv6はipv4の「拡張」ではなく、代替のアドレス指定スキームです。クライアントがipv6またはipv4アドレスを使用しているかどうかは、クライアントの構成のみに依存します(ただし、クライアントとサーバー間の仲介は互換性がある必要があります)。ipv6アドレスには下位互換性がないため、ipv4をipv6アドレスと「同等」にする方法はありません(ただし、逆に、ipv4加算器をipv6互換の方法でエンコードする方法があります)

于 2012-07-09T17:27:28.550 に答える