2009-08-11 79 views
5

我想找出訪問我的網頁的客戶端的IP地址。 JSP頁面的如何確定Web客戶端的IP地址(對於JSP)?

內容:

<% 
out.print(request.getRemoteAddr() + "<br>"); 
out.print(request.getRemoteHost()); 
%> 

輸出:

0:0:0:0:0:0:0:1 
0:0:0:0:0:0:0:1 
+0

是否使用JEE? – 2009-08-11 18:56:06

+0

是的,我使用J2EE – wokena 2009-08-12 04:51:36

回答

6
<% 
    out.print(request.getRemoteAddr()); 
    out. print(request.getRemoteHost()); 
%> 
  • request.getRemoteAddr()返回的IP從那裏你 訪問JSP頁面的機器 地址。
  • request.getRemoteHost()返回 名主持人,從中你 訪問JSP頁面。如果從服務器本身訪問 它,它會返回 服務器名稱。

如果客戶端是一個代理之後,上面是沒有用的,你將獲得代理他們背後的IP,而不是嘗試:

<% 
    out.print(request.getHeader("x-forwarded-for")); 
%> 
+2

+1 request.getHeader(「X轉發換」) – firstthumb 2009-08-11 20:41:24

+0

是否X轉發,對於總是工作?另外,如果客戶端位於執行網絡地址轉換的設備的另一端,我認爲這不會有幫助。 – 2009-08-11 20:42:49

+1

請注意,這是一個非RFC標準頭(「x-」前綴)。 – rodrigoap 2009-08-11 20:45:48

6

你的方法是正確的。我假設你正在本地主機上訪問它,因此打到了回送接口。您看到的數字是您的回送接口的IPv6 IP地址。

試圖打它從另一臺機器。

+0

這正是我需要的信息;謝謝。 – 2009-09-28 16:52:46