Importjava.io.Serializable;Importjava.net.InetAddress;Importjava.net.UnknownHostException;Importjavax.servlet.http.HttpServletRequest; Public classIputilImplementsSerializable {Private Static Final LongSerialversionuid = -2714197398219631534l; Public Staticstring getipaddrbyrequest (HttpServletRequest request) {string IP= Request.getheader ("X-forwarded-for"); if(IP = =NULL|| Ip.length () = = 0 | | "Unknown". Equalsignorecase (IP)) {IP= Request.getheader ("Proxy-client-ip"); } if(IP = =NULL|| Ip.length () = = 0 | | "Unknown". Equalsignorecase (IP)) {IP= Request.getheader ("Wl-proxy-client-ip"); } if(IP = =NULL|| Ip.length () = = 0 | | "Unknown". Equalsignorecase (IP)) {IP=request.getremoteaddr (); } returnIP; } Public Staticstring getipaddr (HttpServletRequest request) {string IpAddress=NULL; IpAddress= Request.getheader ("X-forwarded-for"); if(IpAddress = =NULL|| Ipaddress.length () = = 0 | | "Unknown". Equalsignorecase (ipAddress)) {ipAddress= Request.getheader ("Proxy-client-ip"); } if(IpAddress = =NULL|| Ipaddress.length () = = 0 | | "Unknown". Equalsignorecase (ipAddress)) {ipAddress= Request.getheader ("Wl-proxy-client-ip"); } if(IpAddress = =NULL|| Ipaddress.length () = = 0 | | "Unknown". Equalsignorecase (ipAddress)) {ipAddress=request.getremoteaddr (); //here the main is to get the IP of the machine, optional if(Ipaddress.equals ("127.0.0.1") || Ipaddress.endswith ("0:0:0:0:0:0:1")) { //IP based on NIC for native configurationInetAddress inet =NULL; Try{inet=Inetaddress.getlocalhost (); } Catch(unknownhostexception e) {e.printstacktrace (); } ipAddress=inet.gethostaddress (); } } //for cases through multiple proxies, the first IP is the client real IP, multiple IPs according to ', ' split if(IpAddress! =NULL&& ipaddress.length () > 15) {//"***.***.***.***". Length ()//= if(Ipaddress.indexof (",") > 0) {ipAddress= ipaddress.substring (0, Ipaddress.indexof (",")); } } returnipAddress; }}
Get the IP of the visitor