1. package com.Interface.util;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4.  
  5. /**
  6. * 测试类
  7. *
  8. * @author 华文
  9. * @date 2019年7月5日
  10. * @version 1.0
  11. */
  12. public class Test {
  13.  
  14. /**
  15. * 获取当前公网ip
  16. */
  17. public static String getIpAddr(HttpServletRequest request) {
  18. String ip = request.getHeader("x-forwarded-for");
  19. if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
  20. // 多次反向代理后会有多个ip值,第一个ip才是真实ip
  21. if (ip.indexOf(",") != -1) {
  22. ip = ip.split(",")[0];
  23. }
  24. }
  25. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  26. ip = request.getHeader("Proxy-Client-IP");
  27. System.out.println("Proxy-Client-IP ip: " + ip);
  28. }
  29. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  30. ip = request.getHeader("WL-Proxy-Client-IP");
  31. System.out.println("WL-Proxy-Client-IP ip: " + ip);
  32. }
  33. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  34. ip = request.getHeader("HTTP_CLIENT_IP");
  35. System.out.println("HTTP_CLIENT_IP ip: " + ip);
  36. }
  37. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  38. ip = request.getHeader("HTTP_X_FORWARDED_FOR");
  39. System.out.println("HTTP_X_FORWARDED_FOR ip: " + ip);
  40. }
  41. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  42. ip = request.getHeader("X-Real-IP");
  43. System.out.println("X-Real-IP ip: " + ip);
  44. }
  45. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  46. ip = request.getRemoteAddr();
  47. System.out.println("getRemoteAddr ip: " + ip);
  48. }
  49. return ip;
  50. }
  51. }

java获取当前机器的公网ip的更多相关文章

  1. java获取本机器的IP(linux和windows)

    目录 描述 方案描述 获取Windows下的IP 获取linux下的IP 判断操作系统的类型 最后将上面三个方法进行整合 参考 描述 由于项目是部署在集群上的,需要项目能够自动采集各机器的信息.jav ...

  2. java获取本机名称、IP、MAC地址和网卡名称

    java获取本机名称.IP.MAC地址和网卡名称 摘自:https://blog.csdn.net/Dai_Haijiao/article/details/80364370 2018年05月18日 1 ...

  3. .NetCore.RazorPages 获取访客的公网IP与局域网IP

    dotnet.core 获取访客的公网IP与局域网IP 现在奉上代码 public void OnGet() {var ip = Content(HttpContext.Connection.Remo ...

  4. Java获取请求客户端的真实IP地址

    整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...

  5. java 获取web登录者的ip地址

    /** * 获取访问用户的客户端IP(适用于公网与局域网). */ public static final String getIpAddr(final HttpServletRequest requ ...

  6. 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  7. 查询linux机器的公网ip

    在linux终端提示符下,输入以下命令: curl members.3322.org/dyndns/getip 可以看到下图已经查询到公网IP地址了,就是这么简单

  8. java 获取的是本地的IP地址

    1 public static void main(String[] args) { 2 try { 3 InetAddress address = InetAddress.getLocalHost( ...

  9. 【java】获取客户端访问的公网ip和归属地

    import com.alibaba.druid.support.json.JSONUtils; import org.thymeleaf.util.StringUtils; import javax ...

随机推荐

  1. 联想小新潮怎么修改fn热键以及怎么进入bios状态

    联想小新潮怎么修改fn热键 http://www.ylmfwin100.com/ylmfnew/11129.html  怎么进入bios状态  https://zhidao.baidu.com/que ...

  2. 【Python】 基础语法

    Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 第一个 Python 程序  欢迎,入坑! Python 标识符 在 Python 里,标识符由字母.数 ...

  3. ACM的探索之Everything is Generated In Equal Probability! 后序补充丫!

    Problem Desciption: 百度翻译后的汉化: 参见博客:https://www.cnblogs.com/zxcoder/p/11253099.html https://blog.csdn ...

  4. Thinkphp中验证码不显示解决办法

    1.页面是否存在bom头, 2.入口文件中是否有define(‘APP_DEBUG’, TRUE); //是否开启调试模式,上线时请改为false

  5. PostGreSql - 提取jsonb数据

    本文主要介绍如何在PostGreSql中提取出jsonb类型字段中的某个key的值 参考:https://www.cnblogs.com/mywebnumber/p/5551092.html 一.简单 ...

  6. 关于使用阿里云MAVEN镜像仓库

    由于国内的某些不可明确的原因 国内连接google的时候十分慢,使得看github上的项目十分慢,这里我们可以修改build.gradle下的文件来使用阿里云仓库同步 会更快: // Top-leve ...

  7. Go第三方库之tail

    Tail Demo // tail.TailFile()函数开启goroutine去读取文件,通过channel格式的t.lines传递内容. t, err := tail.TailFile(&quo ...

  8. 寒假安卓app开发学习记录(2)

    今天属实是头疼的一天.开始的时候是简单了解了一下安卓的系统架构,了解到大概分为四个部分. 然后看了两节创建安卓项目的课程,准备去实践一下的时候突然发现我的eclipse里竟然没有Android选项.查 ...

  9. C# 委托实例实现的多种类型

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. 洛谷 P2709 小B的询问(莫队)

    题目链接:https://www.luogu.com.cn/problem/P2709 这道题是模板莫队,然后$i$在$[l,r]$区间内的个数就是$vis[ ]$数组 $add()$和$del()$ ...