/*** IP地址相关工具类*/
public class IpUtil {private static final Logger logger = LoggerFactory.getLogger(IpUtil.class);/*** <h2>获取本机的外网ip地址</h2>* @return*/public static String getV4OrV6IP() {String ip = null;// 访问其他网站获取ip// 测试网站 https://ipw.cn/String test = "http://test.ipw.cn";StringBuilder inputLine = new StringBuilder();String read = "";URL url = null;HttpURLConnection urlConnection = null;BufferedReader in = null;try {url = new URL(test);urlConnection = (HttpURLConnection) url.openConnection();in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));while ((read = in.readLine()) != null) {inputLine.append(read);}ip = inputLine.toString();} catch (Exception e) {logger.error("获取网络IP地址异常,这是具体原因: ", e);} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}if(ip == null){// 没有获取到ip 给默认ipip = "120.229.119.86";logger.info("获取网络IP地址异常, 赋值默认ip: 【{}】", ip);}return ip;}/*** <h2>获取本机真实地址</h2>* @param request* @return*/public static String getIpAddr(HttpServletRequest request) {String ipAddress;try {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")) {// 根据网卡取本机配置的IPInetAddress inet = null;try {inet = InetAddress.getLocalHost();} catch (UnknownHostException e) {logger.error("获取本机地址异常,这是具体原因: ", e);}ipAddress = inet.getHostAddress();}}// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()// = 15if (ipAddress.indexOf(",") > 0) {ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));}}} catch (Exception e) {ipAddress = "";}return ipAddress;}public static void main(String[] args) {System.out.println(IpUtil.getV4OrV6IP());}
}

Java获取(外网)网络IP和本机真实IP Java获取真实IP Java获取真实ip Java获取本机ip Java获取 本机真实ip相关推荐

  1. 如何从HttpServletRequest中获取外网IP地址

    如何从HttpServletRequest中获取外网IP地址 Java 中可以通过HttpServletRequest类的getRemoteAddr(); //可能是用户真是ip也可能是代理服务器的i ...

  2. 怎样查询本机ip地址?如何利用花生壳获取外网IP教程

    听到ip地址这个概念,想必大家都不会陌生,如果我们想要跟对方进行通信,通常我们需要知道对方的ip地址,另外在网络通信中,还有一个非常重要的地址,那就是mac地址.那么我们如何知道本机ip地址呢?我们如 ...

  3. 获取外网IP,再根据IP定位城市

    根据ip定位城市对外开放的接口,有些接口不能直接用了,比如说淘宝接口.这里我用的是一个不知名的接口. 1.AddressUtil工具类 package cn.ztjz.module.audit.uti ...

  4. Android 获取外网IP,实测有效

    网上有很多获取IP的例子,不过都是获取到的本地ip,还有的是因为走不通了,获取到的ip为空,下面看实测获取到外网IP的代码,注意需要在线程里面执行 /*** 获取外网的IP(要访问Url,要放到后台线 ...

  5. python切换ip群发邮件_python获取外网IP并发邮件的实现方法

    第一步:通过ip138来爬取外网ip 第二步:通过python的smtplib模块和email来发送邮件,具体用法去网上搜索, 下面是代码示例: #!/usr/bin/env python #codi ...

  6. delphi获取外网IP

    delphi获取外网IP function getIp():string; var url:string; myIdHttp:TIdHTTP; data:ISuperObject; beginResu ...

  7. python获取公网ip的几种方式_python获取外网ip地址的方法总结

    本文实例总结了python获取外网ip地址的方法.分享给大家供大家参考.具体如下: 一.利用脚本引擎库直接获取 import console; import web.script import ine ...

  8. vue中获取外网IP的方法

    记一下如何在vue项目中获取外网IP 之前有篇文章js获取客户端真实IP记录了如何获取外网IP 那个只是在普通html页面当中的获取方法,在vue项目中就不能这么使用了. 这里介绍一种适用于vue项目 ...

  9. 如何获取外网IP地址

    1.  获取外网IP的方法: 获取外网IP地址方法: 访问网站:http://www.3322.org/dyndns/getip 访问网站:http://city.ip138.com/ip2city. ...

最新文章

  1. flask url构建_如何为生产构建构建Flask-RESTPlus Web服务
  2. 参加前端培训主要学习什么语言
  3. Redis进阶 - Redis主从工作原理详解
  4. hihocoder #1055 : 刷油漆(树形dp)
  5. Springboot的thymeleaf常用属性
  6. 新基建带来新机遇!大数据产业发展需“四驱”推动
  7. DDNS实现内网服务器映射到公网(阿里云)
  8. 女生学师范还是计算机,本人专业是计算机科学与技术师范类,女生,不知道是考研还是工作什么的,今年开学大三,希望大家提点意见...
  9. 【分布式计算】关于Hadoop、Spark、Storm的讨论
  10. typescript parseint不能传number_Typescript 使用日志
  11. 没有人躲得过:被数学支配的噩梦
  12. git 编辑提交的技巧
  13. moss2007-搜索服務
  14. 清华大学计算机音乐,清华特奖候选人丨胡昌然:关于机器,音乐和灵魂
  15. 狂神说java-Mybatis
  16. 玩平衡小车系列—TB6612FNG与直流电机控制教程
  17. 免费压缩视频大小最佳方法?
  18. 106、对待低优先级bug的可行方法
  19. 佛祖保佑永无BUG 神兽护体 代码注释(各种版本)
  20. LCR 测量仪使用方法

热门文章

  1. 传智播客 python 东哥_记录与传智播客的py交易(AI+python)
  2. .net core 跨域总结
  3. 解决Windows远程桌面服务无法复制粘贴:重启rdpclip.exe
  4. [转]PHP Session原理分析及使用
  5. ie中常见的js语法兼容问题
  6. “知法犯法”?华宇软件董事长被立案调查并留置,赵晓明能否挑起“法律科技第一股”的大梁...
  7. js算法中的时间复杂度
  8. 怎么把迅雷正在下的东西的种子提取出来?
  9. 微软 Office Web Viewer 的使用
  10. Tomcat启动错误PermGen space