首页 > 代码库 > 使用Java技术获取客户端的IP地址
使用Java技术获取客户端的IP地址
今天发文一篇较为简单,且文档满天飞的获取IP地址的java代码,可能很多小白们不一定能找到完整兼容的方法,故在此送给小白们一份干货。
此文也是为了接下来的时间里,我将会写一篇使用HTML5技术扫描PC二维码且在WAP端实现可上传图片或视频的文档,这里会运用到根据参数动态生成二维码和传输文件的技术,也会应用到ip及端口的东西。
下面是运用java代码判断当前客服端IP地址的逻辑:
private String getInternetIp(HttpServletRequest request) { String ip = StringUtils.getNullBlankStr(request.getHeader("x-forwarded-for")); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = StringUtils.getNullBlankStr(request.getHeader("Proxy-Client-IP")); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = StringUtils.getNullBlankStr(request.getHeader("WL-Proxy-Client-IP")); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = StringUtils.getNullBlankStr(request.getRemoteAddr()); } if ("127.0.0.1".equals(ip)) { // 根据网卡取本机配置的IP InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (Exception e) { e.printStackTrace(); } ip = StringUtils.getNullBlankStr(inet.getHostAddress()); } // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照‘,‘分割 if (ip != null && ip.length() > 15) { // "***.***.***.***".length() = 15 if (ip.indexOf(",") > 0) { ip = ip.substring(0, ip.indexOf(",")); } } return ip; }
由于本地往往会应用localhost或127.0.0.1的端口进行开发和测试,故该java代码有效的为我们进行了网口的校验,提高了效率。
接下来的时间正如上文所说的,我会抽个时间写一篇使用HTML5技术扫描PC二维码且在WAP端实现可上传图片或视频的文档,将会提供完整代码给各位同僚们,谢谢。
本文出自 “華麗Dē‖Java Question” 博客,请务必保留此出处http://teny32.blog.51cto.com/8027509/1864317
使用Java技术获取客户端的IP地址
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。