java获取ip地址的方法:
/** * 通过httpservletrequest返回ip地址 * * @param request httpservletrequest * @return ip string * @throws exception */ private static string getipaddr(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.getheader("http_client_ip"); } if (ip == null || ip.length() == 0 || "unknown".equalsignorecase(ip)) { ip = request.getheader("http_x_forwarded_for"); } if (ip == null || ip.length() == 0 || "unknown".equalsignorecase(ip)) { ip = request.getremoteaddr(); if (local_ip.equals(ip) || local_ip1.equals(ip)) { inetaddress inet = null; try { inet = inetaddress.getlocalhost(); ip = inet.gethostaddress(); } catch (unknownhostexception e) { e.printstacktrace(); } } } return ip; }
httpservletrequest对象代表客户端的请求,当客户端通过http协议访问服务器时,http请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
常用方法:
getrequesturl方法返回客户端发出请求时的完整url。
getrequesturi方法返回请求行中的资源名部分。
getquerystring 方法返回请求行中的参数部分。
getpathinfo方法返回请求url中的额外路径信息。额外路径信息是请求url中的位于servlet的路径之后和查询参数之前的内容,它以“/”开头。
getremoteaddr方法返回发出请求的客户机的ip地址。
getremotehost方法返回发出请求的客户机的完整主机名。
getremoteport方法返回客户机所使用的网络端口号。
getlocaladdr方法返回web服务器的ip地址。
getlocalname方法返回web服务器的主机名。
更多java知识请关注java基础教程栏目。
以上就是java如何获取ip地址的详细内容。