获取ip地址

 @GetMapping(value = "/ip")public  String getIpaddr(HttpServletRequest request) {String 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();if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) {//根据网卡取本机配置的IPInetAddress inet = null;try {inet = InetAddress.getLocalHost();} catch (UnknownHostException e) {e.printStackTrace();}ipAddress = inet.getHostAddress();}}//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割if (ipAddress != null && ipAddress.length() > 15) { //"***.***.***.***".length() = 15if (ipAddress.indexOf(",") > 0) {ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));}}//  String header = request.getHeader("user-agent"); 获取用户版本号// System.out.println(header);// String remoteAddr = request.getRemoteAddr();//获取ip//System.out.println(remoteAddr);return ipAddress;}
/*** 获取客户端IP** @param request request* @return 客户端IP*/public static String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {if (ip.contains(",")) {ip = ip.split(",")[0];}}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.getHeader("X-Real-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}if (StringUtils.isBlank(ip)) {return LOCAL_IPV4;}return ip;}

获取设备信息

 private static String pattern = "^Mozilla/\\d\\.\\d\\s+\\(+.+?\\)";private static String pattern2 = "\\(+.+?\\)";private static Pattern r = Pattern.compile(pattern);private static Pattern r2 = Pattern.compile(pattern2);public static String getDeviceInfo(HttpServletRequest request) {String userAgent = request.getHeader("User-Agent");return getDeviceInfo(userAgent);}private static String getDeviceInfo(String userAgent) {Matcher m = r.matcher(userAgent);String result = null;if (m.find()) {result = m.group(0);}Matcher m2 = r2.matcher(result);if (m2.find()) {result = m2.group(0);}result = result.replace("(", "");result = result.replace(")", "");return filterDeviceInfo(result);}public static String filterDeviceInfo(String result) {if (StringUtils.isBlank(result)) {return null;}result = result.replace(" U;", "");result = result.replace(" zh-cn;", "");return result;}

获取客户端IP和设备型号相关推荐

  1. Linux环境下服务器利用组播来获取客户端IP

    Linux环境下服务器利用组播来获取客户端IP 单播是两个主机之间端对端通信(比如TCP.UDP通信),而广播用于一个主机对整个局域网中所有主机的通信.单播和广播是两个极端,要么对一个主机通信,要么对 ...

  2. c# 获取客户端IP地址方法

    客户端ip: Request.ServerVariables.Get("Remote_Addr").ToString();  客户端主机名: Request.ServerVaria ...

  3. JS获取客户端IP地址、MAC和主机名的7个方法汇总

    今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome.FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本. ...

  4. 如何在PHP中获取客户端IP地址[重复]

    本文翻译自:How to get the client IP address in PHP [duplicate] This question already has an answer here: ...

  5. ASP.NET Core 中使用负载均衡时获取客户端 IP

    在使用负载均衡的情况下,通过 context.Connection.RemoteIpAddress 获取到的是负载均衡的 IP 地址,需要通过 X-Forwarded-For 请求头才能获取到客户端的 ...

  6. ASP.NET获取客户端IP及MAC地址

    ASP.NET获取客户端IP及MAC地址 2008-12-01 14:50 ASP.NET获取客户端IP及MAC地址很多时候非常必要的,像做投票.留言.评论 等系统的时候防止别人恶意操作,导致数据的虚 ...

  7. JAVA CXF、XFIRE、AXIS webservice获取客户端IP

    2019独角兽企业重金招聘Python工程师标准>>> import javax.annotation.Resource; import javax.servlet.http.Htt ...

  8. 深入分析几种PHP获取客户端IP的情况

    深入分析几种PHP获取客户端IP的情况 http://mount.blog.51cto.com/764124/528084 2011-03-27 16:13:29 标签:代理服务器 客户端 文章 PH ...

  9. openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息

    openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息 为了实现业务系统针对不同地区IP访问,展示包含不同地区信息的业务交互界面.很多情况下系统需要根据用户访问的IP信息 ...

最新文章

  1. git安装和使用案例
  2. linux /etc/hosts.allow和/etc/hosts.deny 限制 禁止 ip连接 黑名单 白名单
  3. gogs mysql 报错_linux上Docker安装gogs私服亲测(详解)
  4. office2007安装出现windows installer服务不能更新一个或多个受保护的windows文件
  5. 15.verilog可综合语句设计综述
  6. python基础教程:变量的使用
  7. java 调用dll 方法 postmessage实现后台模拟按键_VB实现模拟键盘及模拟鼠标(后台操作)...
  8. 以下哪些组件是Oracle,Oracle考试题1参考
  9. Barefoot和Stordis在欧洲领导开源网络
  10. Bailian2726 采药【模拟】
  11. 使用SmartSVN打分支与合并代码
  12. [2018.10.10 T2] 烯烃
  13. Matlab图像显示
  14. ckPlayer播放器嵌入页面时报错CKobject is not defined解决方案
  15. SpringCloud(part12)Spring OAuth2--案例
  16. 用ajax+jquery+json+css3+html5实现登录、注册、以及主页面的增删改查
  17. Q版京剧脸谱来喽——武生
  18. 基于PCA 人脸识别/人脸识别算法/人脸检测程序源码MATLAB ELM+PCA人脸识别 PCA人脸识别matlab代码 基于PCA算法的人脸识别
  19. sequoia负载均衡
  20. 使用VMware测试U盘启动盘是否制作成功

热门文章

  1. 【个性化推荐系统】简介
  2. 计算机硬盘驱动器越大,计算机具有驱动器C和驱动器D,但是为什么不驱动器A和驱动器B!您认识经常使用计算机的人吗?...
  3. 【Gale Shapley 婚姻稳定匹配算法实现】
  4. “索尼电子在中国”网站的进化(转)
  5. cad中怎么随意移动图形_CAD中不用移动命令也可以移动图形
  6. 上位机中RS485与RS232的区别
  7. 我擅长英语和计算机用英语怎么说,我很擅长英语,用英语怎么说,(擅长于) 用英语有几种表达,列举出来...
  8. Vue中使用定时器和随机数
  9. idea 注解制表符_如何在IntelliJ IDEA中使用制表符进行缩进?
  10. 【Leetcode】1474. Delete N Nodes After M Nodes of a Linked List