Web アプリケーションにアクセスするクライアント マシンの IP アドレスを取得することになっています。グーグルで調べたところ、次の 2 つの方法が見つかりました。
request.getRemoteAddr()
request.getHeader("X-FORWARDED-FOR")
ただし、どちらもクライアント マシンの実際の IP を返すことを保証するものではありません。また、アプリケーションは struts1.2 で開発されているため、 struts1.2を使用して同じことを達成することになっています。
同じためのStrutsクラスはありますか?
次のコードを使用しています。
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
しかし、モバイルまたはワイヤレス デバイスからアプリケーションにアクセスすると、メソッドrequest.getHeader("X-FORWARDED-FOR");
が返されます。null
その結果、メソッドから ip が取得されますrequest.getRemoteAddr();
。問題は、取得された ip がプライベートでパブリックではなく、クライアントのパブリック ipが
必要なことです。