0

JSP ページでクライアントの IP アドレスを取得し、データベースに保存したいと考えています。

Jspページで次のコードを使用してIPアドレスをフェッチしていますが、サーバーのIPアドレスが表示されています。

 <input type="hidden" name="ipaddress" value="<%=request.getRemoteAddr()%>"/> 
4

2 に答える 2

9

通常、メソッドServletRequest.getRemoteAddr()(またはgetRemoteHost()およびgetRemotePort()) は実際のクライアントの詳細を返す必要があります。ただし、プロキシまたは別のサーブレット エンジンを介してルーティングされる場合は、それらのマシンの IP を取得します。これらの状況に取り組むには、以下の操作を試すことができます

request.getHeader("VIA")             --> Gateway   
request.getHeader("X-FORWARDED-FOR")--> IPaddress

ただし、リクエストがクライアントから直接送信された場合、これは null を返す可能性があります。有効なデータを取得するために、いくつかの追加条件を使用して状況を処理できます。

于 2012-10-18T16:28:05.890 に答える
1

オブジェクトを使用してサーバー側からクライアント IP アドレスを取得しようとすることrequestは、決して信頼できる方法ではありません。

最も信頼性の高いものは、ActiveX、アプレット、Javascript などを使用して、クライアント側で実行される傾向があります。ただし、これにはいくつかの課題もあります。この質問への回答を確認して、自分が何に直面しているのかを確認してください (これは、その中で私が好む回答です)

于 2012-10-18T16:11:10.240 に答える