Java獲取客戶端及區域網ip和埠地址
在java專案Controller層加入下面程式碼:
public Map<String,Object>selectAccessory(HttpServletRequest request){
//public Map<String,Object>selectAccessory(HttpServletRequest request)根據自己需要改寫
//下列程式碼可以直接複製
Map<String,Object> map=new HashMap<String,Object>();
System.out.println("取得客戶端的系統版本 1="+request.getHeader("User-Agent")+
"取得客戶端的IP 2="+request.getRemoteAddr()+
"取得客戶端的主機名3="+request.getRemoteHost()+
"取得客戶端的埠 4="+request.getRemotePort()+
"取得客戶端的使用者5="+request.getRemoteUser()+
"取得伺服器IP6="+request.getLocalAddr()+
"取得伺服器埠7="+request.getLocalPort());
//下面為獲取客戶端ip地址程式碼
String remoteAddr = request.getRemoteAddr();
String forwarded = request.getHeader("X-Forwarded-For");
String realIp = request.getHeader("X-Real-IP");
String ip = null;
if (realIp == null) {
if (forwarded == null) {
ip = remoteAddr;
} else {
ip = remoteAddr + "/" + forwarded.split(",")[0];
}
} else {
if (realIp.equals(forwarded)) {
ip = realIp;
} else {
if(forwarded != null){
forwarded = forwarded.split(",")[0];
}
ip = realIp + "/" + forwarded;
}
}
System.out.println("客戶端ip="+ip);
//列印到控制檯的都是你所需要的內容
return map;
}