1. 程式人生 > >Java獲取客戶端及區域網ip和埠地址

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;

}