获取本机的外网地址

如果下面正确,请留下您宝贵的赞

package untils;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
import java.util.Enumeration;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** @author CBeann* @create 2020-04-13 1:31*/
public class IPUntils {public static void main(String[] args) throws Exception {System.out.println(IPUntils.getInterIP1());System.out.println(IPUntils.getInterIP2());System.out.println(IPUntils.getOutIPV4());}public static String getInterIP1() throws Exception {return InetAddress.getLocalHost().getHostAddress();}public static String getInterIP2() throws SocketException {String localip = null;// 本地IP,如果没有配置外网IP则返回它String netip = null;// 外网IPEnumeration<NetworkInterface> netInterfaces;netInterfaces = NetworkInterface.getNetworkInterfaces();InetAddress ip = null;boolean finded = false;// 是否找到外网IPwhile (netInterfaces.hasMoreElements() && !finded) {NetworkInterface ni = netInterfaces.nextElement();Enumeration<InetAddress> address = ni.getInetAddresses();while (address.hasMoreElements()) {ip = address.nextElement();if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 外网IPnetip = ip.getHostAddress();finded = true;break;} else if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 内网IPlocalip = ip.getHostAddress();}}}if (netip != null && !"".equals(netip)) {return netip;} else {return localip;}}public static String getOutIPV4() {String ip = "";String chinaz = "http://ip.chinaz.com";StringBuilder inputLine = new StringBuilder();String read = "";URL url = null;HttpURLConnection urlConnection = null;BufferedReader in = null;try {url = new URL(chinaz);urlConnection = (HttpURLConnection) url.openConnection();in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));while ((read = in.readLine()) != null) {inputLine.append(read + "\r\n");}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}Pattern p = Pattern.compile("\\<dd class\\=\"fz24\">(.*?)\\<\\/dd>");Matcher m = p.matcher(inputLine.toString());if (m.find()) {String ipstr = m.group(1);ip = ipstr;}return ip;}
}

java获取本机的外网IP地址(亲测有效)相关推荐

  1. Java 获取本机的外网 IP

    原理 通过 HTTP 访问第三方获取 IP 的服务接口获取本机的外网 IP,例如: http://checkip.amazonaws.com/ https://ipv4.icanhazip.com/ ...

  2. 如何查看本机的外网IP地址

    如何查看本机的外网IP地址 在百度中输入IP

  3. java获取本机的外网ip----最简便、易懂

    IP/IPv6查询,服务器地址查询 - 站长工具 可以通过上面的网站进行手动查询本机的外网ip java代码 public class IPUntils {public static String g ...

  4. 要获取NAT之后的外网IP地址

    windows下IP138.com Linux下: 确保能访问互联网,DNS解析正常的情况下执行 ifconfig.me是一个和ip138类似的神奇的网站~~~ $ curl ifconfig.me ...

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

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

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

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

  7. Golang 获取当前外网IP/地址/运营商

    Golang 获取当前外网IP/地址/运营商 - Go语言中文网 - Golang中文社区 package mainimport ("fmt""io/ioutil&quo ...

  8. 如何获取外网IP地址

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

  9. 获取外网IP地址API

    1.获取外网IP地址 地址: http://pv.sohu.com/cityjson?ie=utf-8 返回结果: var returnCitySN = {"cip": " ...

  10. bigemap如何切换外网IP地址

    在使用地图下载器的过程中,由于访问的国外网络,所以网络的运行商(电信.移动.联通)会根据各地的情况封锁你要访问的国外地址,在封锁的过程因为不可能封锁所有的国外访问,所以只是屏蔽了你的IP地址,这时候我 ...

最新文章

  1. 高职扩招计算机应用课程,高职扩招带来的“新生”
  2. 获取AD里面指定OU或Container里面的计算机以及Lastlogon时间格式转换
  3. 【数据平台】Pytorch库初识
  4. Flex不支持SOAP1.2
  5. java遍历文件目录
  6. java生成动态验证码_动态生成验证码案例
  7. 这篇文章,专治MQ中间件各种疑难杂症
  8. java多张图片合成一张_一款国外有趣、简单、功能齐全的图片处理软件。
  9. Boltzmann 玻尔兹曼机(BM)
  10. Android应用开发环境搭建
  11. 九大内置对象和四大作用域
  12. 360浏览器极速模式和兼容模式
  13. 【渝粤题库】陕西师范大学202141规制经济学 作业(高起专)
  14. 解决方法:CC2640R2F从7x7改成5x5封装,主机连接失败
  15. 【C语言数据结构与算法的应用4】巨大数----加减乘运算(万进制和Mec补码的应用)
  16. 亚马逊国际站通过ASIN获取商品信息
  17. Oracle trace level
  18. animator动画
  19. 1293 夏洛克和他的girl friend(二分图、线性筛)
  20. java数学题_小学数学练习题用Java实现

热门文章

  1. 三、大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
  2. 邮箱显示exchange账号服务器错误,Exchange服务器刚开始用就总是出错!
  3. windows7桌面计算机作用,win7系统虚拟桌面功能的详细教程
  4. python一个下载小说的简易爬虫
  5. 关于SEL的一些总结
  6. 2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
  7. 云迁移实践:VMware虚拟机迁移到腾讯云
  8. 中山公园再添一座新地标,青岛首家丛林书吧“林荫阅读室”
  9. 恒玉佳壬二酸使用方法,15壬二酸能帮助祛痘吗
  10. 关于“socket:10106 无法加载或初始化请求的服务提供程序”问题的解决方法