Java 获取客服端ip地址

  1. /**
  2. * <html>
  3. * <body>
  4. * <P> Copyright 1994 JsonInternational</p>
  5. * <p> All rights reserved.</p>
  6. * <p> Created on 19941115</p>
  7. * <p> Created by Jason</p>
  8. * </body>
  9. * </html>
  10. */
  11. package cn.ucaner.alpaca.framework.utils.ip;
  12.  
  13. import javax.servlet.http.HttpServletRequest;
  14.  
  15. /**
  16. * @Package:cn.ucaner.framework.utils
  17. * @ClassName:IPAddress
  18. * @Description: <p> ip地址</p>
  19. * @Author: - Jason
  20. * @CreatTime:2017年8月30日 下午2:12:19
  21. * @Modify By:
  22. * @ModifyTime:
  23. * @Modify marker:
  24. * @version V1.0
  25. */
  26. public class IPAddress {
  27.  
  28. /**
  29. * 获取客户端ip地址
  30. * @param request
  31. * @return
  32. */
  33. public static String getClientIpAddress(HttpServletRequest request) {
  34. String ip = request.getHeader("X-Forwarded-For");
  35. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  36. ip = request.getHeader("X-Real-IP");
  37. }
  38. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  39. ip = request.getHeader("Cdn-Src-Ip");
  40. }
  41. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  42. ip = request.getHeader("Proxy-Client-IP");
  43. }
  44. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  45. ip = request.getHeader("WL-Proxy-Client-IP");
  46. }
  47. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  48. ip = request.getRemoteAddr();
  49. }
  50. if (ip.indexOf(",") > -1) {
  51. ip = ip.substring(0, ip.indexOf(","));
  52. }
  53. return ip;
  54. }
  55. }

  

Java 获取客服端ip地址的更多相关文章

  1. java获取客服端信息(系统,浏览器等)

    String agent = request.getHeader("user-agent"); System.out.println(agent); StringTokenizer ...

  2. C#获取客服端ip和用户名

    . 在asp.Net中专用属性: 获取服务器电脑名:page.server.manchinename 获取用户信息:page.user 获取客户端电脑名:page.request.userhostna ...

  3. JAVA 获取指定网址的IP地址 实例

    如今买票是一大难事,在高峰时段 打开12306网站,慢的像蜗牛,想到以前用修改hosts文件来登录Google(Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址 ...

  4. java获取当前网站的IP地址

    package ip; import java.net.InetAddress; import java.net.UnknownHostException; /** * * @author * */ ...

  5. java 获取访问主机的ip地址

    Java的api的说法: getHeader public java.lang.String getHeader(java.lang.String name) Return the first val ...

  6. java获取访问者真实的IP地址

    众所周知java方法request.getremoteaddr()可以获得访问者的IP地址 但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件 ...

  7. java获取登陆用户的IP地址

    /** * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws E ...

  8. java 获取本机的IP地址

    方法一:这种方式有一定的局限性,在Linux下的执行结果是:本机的IP = xxx/127.0.1.1 (其中xxx是你的计算机名) public void getLocalIPAddress() { ...

  9. java 获取本机所有IP地址

    import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import ...

随机推荐

  1. linux高性能服务器编程 (九) --I/O复用

    第九章 I/O复用 I/O复用就是一个线程可以同时监听多个文件描述符,提高程序性能.虽然I/O复用可以同时监听多个文件描述符,但是它本身是阻塞的,如果多个文件描述符准备就绪,如果不采取措施它仍然是串行 ...

  2. Java中的long类型和Long类型比较大小

    Java中我们经常要做一些判断,而对于判断的话,用的最多的便是“>”.“==”.“<”的比较,这里我们进行一个Long类型数据和long类型数据的比较大小的讲解. Java中Long和lo ...

  3. 数据库MySQL调优实战经验总结<转>

    数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...

  4. 解析生效测试方法 执行命令 ping 域名 得不到 IP 主要有如下几个原因:

    https://help.aliyun.com/knowledge_detail/39834.html dig https://cloud.tencent.com/document/product/3 ...

  5. 本地快速搭建MarkDown语法网站

    主要是在之前跟人学的快速搭建一个简单的网站,可以通过这样的方式把相关的文档美美的放在服务器上,然后给别人看也好,自己也能熟系熟系MarkDown的语法并学习,要是接口文档还是推荐通过swagger去实 ...

  6. 图片放大神器: waifu2x

    在线版可以在这个地址上使用:http://waifu2x.udp.jp/index.zh-CN.html , 但是在线版最大图片为5M,最大上传分辨率为1500*1500,且最大放大倍数为2倍,还是有 ...

  7. electron-vue在使用element-ui时部分组件无法显示问题

    原文连接: https://juejin.im/post/5d132629e51d45772a49ad71 问题描述 在使用electron开发桌面系统时,遇到部分element-ui组件在页面中无法 ...

  8. pytorch 中conv1d操作

    参考:https://blog.csdn.net/liujh845633242/article/details/102668515 这里我重点说一下1D卷积,2D卷积很好理解,但是1D卷积就不是那么好 ...

  9. delete some elements from the head of slice without new memory

    a = []int{1, 2, 3} a = append(a[:0], a[1:]...) // 删除开头1个元素 a = append(a[:0], a[N:]...) // 删除开头N个元素

  10. WSL记录

    cmder(mini版)作为wsl的终端,很好用,可以split屏.但是:千万不要在settings里面设置start up(启动) 里面设置 命令行“bash -cur_console:p1”!目前 ...