導航:首頁 > 編程語言 > jsp獲取當前ip

jsp獲取當前ip

發布時間:2023-10-12 19:30:35

java servlet獲取客戶端IP

jsP里,獲取客戶端的IP地址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的內。但是在通容過了 Apache,Squid等反向代理軟體就不能獲取到客戶端的真實IP地址了。如果使用了反向代理軟體,用 request.getRemoteAddr()方法獲取的IP地址是:127.0.0.1或 192.168.1.110,而並不是客戶端的真實IP。

request.getRemoteAddr()的方法獲取的IP實際上是代理伺服器的地址,並不是客戶端的IP地址。

於是可得出獲得客戶端真實IP地址的方法一:

public String getRemortIP(HttpServletRequest request) {

if (request.getHeader("x-forwarded-for") == null) {

return request.getRemoteAddr();

}

return request.getHeader("x-forwarded-for");

}

你可以寫一個Filter配置在web.xml中 讓伺服器啟動的時候就開始監聽 直到伺服器停止!

㈡ 怎樣用JAVA程序獲取本機ip

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Test
{
public static void main(String[] args) throws UnknownHostException
{
InetAddress inet = InetAddress.getLocalHost();
System.out.println("本機的ip=" + inet.getHostAddress());

}
}

㈢ jsp中怎麼獲得伺服器ip和服務埠,在線等

/** *構造函數. */ privateInternetProtocol(){ } /** *獲取客戶端IP地址.<br> *支持多級反向代理 * *@paramrequest *HttpServletRequest *@return客戶端真實IP地址 */ (){ try{ StringremoteAddr=request.getHeader("X-Forwarded-For"); //如果通過多級反向代理,X-Forwarded-For的值不止一個,而是一串用逗號分隔的IP值,此時取X-Forwarded-For中第一個非unknown的有效IP字元串 if(isEffective(remoteAddr)&&(remoteAddr.indexOf(",")>-1)){ String[]array=remoteAddr.split(","); for(Stringelement:array){ if(isEffective(element)){ remoteAddr=element; break; } } } if(!isEffective(remoteAddr)){ remoteAddr=request.getHeader("X-Real-IP"); } if(!isEffective(remoteAddr)){ remoteAddr=request.getRemoteAddr(); } returnremoteAddr; }catch(Exceptione){ log.error("getromoteiperror,errormessage:"+e.getMessage()); return""; } } /** *獲取客戶端源埠 *@paramrequest *@return */ publicstaticLonggetRemotePort(){ try{ Stringport=request.getHeader("remote-port"); if(StringUtil.isNotEmptyString(port)){ try{ returnLong.parseLong(port); }catch(NumberFormatExceptionex){ log.error("convertporttolongerror,port: "+port); return0l; } }else{ return0l; } }catch(Exceptione){ log.error("getromoteporterror,errormessage:"+e.getMessage()); return0l; } }

㈣ java獲得IP地址

下面有一篇文章,介紹若何讀取物理網卡的地址 ,同樣的
你可以用這個方法讀取你所需要的本機IP地址

=======================================================
J2SE5.0新特性之ProcessBuilder
這個例子使用了J2SE5.0的ProcessBuilder類執行外部的程序,相對於 Runtime.exec ,它更方便,可以設置環境變數等。這里使用它在windows下讀取物理網卡的地址

package com.kuaff.jdk5package;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class ProcessBuilderShow
{
public static List getPhysicalAddress()
{
Process p = null;
//物理網卡列表
List address = new ArrayList();

try
{
//執行ipconfig /all命令
p = new ProcessBuilder("ipconfig", "/all").start();
}
catch (IOException e)
{
return address;
}
byte[] b = new byte[1024];
StringBuffer sb = new StringBuffer();
//讀取進程輸出值
InputStream in = p.getInputStream();
try
{
while (in.read(b)>0)
{
sb.append(new String(b));
}
}
catch (IOException e1)
{
}
finally
{
try
{
in.close();
}
catch (IOException e2)
{
}
}
//以下分析輸出值,得到物理網卡
String rtValue = sb.substring(0);
int i = rtValue.indexOf("Physical Address. . . . . . . . . :");
while(i>0)
{
rtValue = rtValue.substring(i + "Physical Address. . . . . . . . . :".length());
address.add(rtValue.substring(0,18));
i = rtValue.indexOf("Physical Address. . . . . . . . . :");
}
return address;
}
public static void main(String[] args)
{
List address = ProcessBuilderShow.getPhysicalAddress();
for(String add:address)
{
System.out.printf("物理網卡地址:%s%n", add);
}
}
}

㈤ jsp中如何獲取本機ip

<%=
request.getLocalAddr()
%>
//伺服器IP地址
<%=
request.getRemoteAddr()
%>
//遠程
訪問機器的IP地址
的確很好用!~~

閱讀全文

與jsp獲取當前ip相關的資料

熱點內容
微信緩沖數據在哪裡 瀏覽:636
文件拷貝到u盤的時候文件丟失了 瀏覽:156
婚紗拍照用哪個app 瀏覽:700
域名的主機名網路名 瀏覽:260
帶官網的有哪些網站 瀏覽:265
江蘇校服通官網app怎麼下不了 瀏覽:929
車床清根怎麼編程 瀏覽:867
word2007表格內容上下居中 瀏覽:818
蘋果手機視頻傳送不了qq文件 瀏覽:738
文件夾加密保護 瀏覽:852
蘋果5瀏覽不到網路 瀏覽:932
修電腦什麼編程器最好 瀏覽:557
計算機網路期末論文 瀏覽:731
領導現場工作照怎麼取文件名 瀏覽:957
iphone4s喇叭失靈播放音樂沒聲音 瀏覽:457
如何查找各省份的行業數據 瀏覽:462
保存到考生文件是哪個文件 瀏覽:272
linuxvim分屏 瀏覽:640
網路打牌被監控怎麼辦 瀏覽:10
為什麼漢化版編程語言沒有發展 瀏覽:86

友情鏈接