文章来源:https://www.cnblogs.com/hello-tl/p/9139323.html

  1. import java.net.InetAddress;
  2. import java.net.UnknownHostException;
  3.  
  4. import javax.servlet.http.HttpServletRequest;
  5.  
  6. public class IP {
  7.   /**
  8. * 获取当前网络ip
  9. * @param request
  10. * @return
  11. */
  12. public static String getIpAddr(HttpServletRequest request){
  13. String ipAddress = request.getHeader("x-forwarded-for");
  14. if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
  15. ipAddress = request.getHeader("Proxy-Client-IP");
  16. }
  17. if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
  18. ipAddress = request.getHeader("WL-Proxy-Client-IP");
  19. }
  20. if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
  21. ipAddress = request.getRemoteAddr();
  22. if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){
  23. //根据网卡取本机配置的IP
  24. InetAddress inet=null;
  25. try {
  26. inet = InetAddress.getLocalHost();
  27. } catch (UnknownHostException e) {
  28. e.printStackTrace();
  29. }
  30. ipAddress= inet.getHostAddress();
  31. }
  32. }
  33. //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
  34. if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
  35. if(ipAddress.indexOf(",")>0){
  36. ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
  37. }
  38. }
  39. return ipAddress;
  40. }
  41. }

文章来源:https://www.cnblogs.com/hello-tl/p/9139323.html

Java:获取IP地址的更多相关文章

  1. Java获取ip地址的几种方法

    以下内容介绍下java获取ip地址的几种思路. 1.直接利用java.net.InetAddress类获取,不过这种方法只在windows环境下有效,在linux环境下只能获取localhost地址( ...

  2. java获取IP地址

    最近在一个多系统集成的项目中,由于跳转路径含IP地址,每次IP改了重启项目都得改好多地方,甚是麻烦.刚在网上了解到java获取IP地址,给大家分享下: 首先要导入jar包 request.getRem ...

  3. java 获取ip地址和网络接口

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  4. Java获取IP地址,IpUtils工具类,Java IP地址获取

    ================================ ©Copyright 蕃薯耀 2020-01-17 https://www.cnblogs.com/fanshuyao/ import ...

  5. Java获取IP地址:request.getRemoteAddr()注意

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

  6. MAC地址,使用java获取IP地址和MAC地址。

    MAC地址,通常在http连接的项目中,来区分唯一客户端. MAC:六组十六进制字符组成. 如:E0-3F-49-AB-DB-EB IP:四组八位的二进制字符组成. 如:10.6.62.244 /** ...

  7. java 获取ip地址

    1.使用WIFI 首先设置用户权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"& ...

  8. 利用Java获取ip地址

    方法1 public static String getIp2(HttpServletRequest request) { String ip = request.getHeader("X- ...

  9. Java 获取 IP

    /** * 获取访问者IP. * 在一般情况下使用 Request.getRemoteAddr() 即可,但是经过 nginx 等反向代理软件后,这个方法会失效. */ private String ...

  10. Java根据ip地址获取Mac地址,Java获取Mac地址

    Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. .net mvc中一种简单的工作流的设计

    开篇前的废话:工作流是我们在做互联网应用开发时经常需要用到的一种技术,复杂的工作流我们基本是借助一些开源的 工作流项目来做,比如 ccflow等,但是有时候,我们只需要实现一些简单的工作流流程,这时候 ...

  2. 笔记-JavaWeb学习之旅3

    数据库的设计 1.多表之间的关系 一对一 一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键 一对多 在多的一方建立外键指向一的一方建立主键 多对多 多对多关系实现需要借助第三张中间表.中间表 ...

  3. redis启停

    1 查看服务器上启动的redis服务 开了两个redis单机服务,监听在两个端口. 开了一个集群,监听在6个端口. [root@localhost bin]# ps aux | grep redis ...

  4. 自己写一个websocket

    import socket, base64, hashlib sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsock ...

  5. 洛谷 P2841 A*B Problem

    https://www.luogu.org/problemnew/show/P2841 根本不会啊... 大概就是:如果两个数模a的结果相同,那么它们前面同时加上一个0或1后模a的结果仍然相同,因此可 ...

  6. POM报错Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from

    解决方式一:   1.查看.m2\repository\org\apache\maven\plugins\maven-resources-plugin\下maven-resources-plugin- ...

  7. C. Bear and Colors 区间枚举的技巧

    http://codeforces.com/problemset/problem/673/C 先说一个枚举区间的技巧,枚举前缀,不要枚举后缀. 就是下面这个代码是不好的 ; i <= n; ++ ...

  8. c++ 如何对拍

    首先要写好两个要对拍程序(假设是A,B),和一个制造数据的程序(设为made)   (要放在同一文件夹内) 编译得到A.exe , B.exe ,  made.exe 写一个对拍器 格式如下 @ech ...

  9. P2676 超级书架

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N & ...

  10. hihocoder offer收割编程练习赛8 B 拆字游戏

    思路: 模拟,dfs. 注意题目中的trick,输出一块的时候不要把其他块也输出了. 实现: #include <cstring> #include <iostream> #i ...