linux命令获取本机外网ip地址

  • 1 直接返回ip
    最快 稳定
    curl ns1.dnspod.net:6666
    curl whatismyip.akamai.com
    curl icanhazip.com
    curl members.3322.org/dyndns/getip

    慢 或 不稳定(有时无响应)
    curl ipecho.net/plain
    curl myip.dnsomatic.com
    curl tnx.nl/ip
    curl ifconfig.me

  • 2 返回带ip的json
    curl http://checkip.dyndns.com/
    curl http://pv.sohu.com/cityjson
    curl http://ip.taobao.com/service/getIpInfo.php?ip=myip


    curl https://ip.cn/

  • 3 返回的页面内容中含ip
    curl http://www.ip168.com/json.do?view=myipaddress
    curl http://www.net.cn/static/customercare/yourip.asp

java程序获取本机外网ip地址

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** @author:* @create: 2019-11-07 18:11**/
public class SelfIpUtil {/*** 外网ip地址*/private static String publicIp;/*** 下面url返回地址都包含ip地址,为防止某个url失效,* 遍历url获取ip地址,有一个能成功获取就返回*/private static String[] urls = {"http://whatismyip.akamai.com","http://icanhazip.com","http://members.3322.org/dyndns/getip","http://checkip.dyndns.com/","http://pv.sohu.com/cityjson","http://ip.taobao.com/service/getIpInfo.php?ip=myip","http://www.ip168.com/json.do?view=myipaddress","http://www.net.cn/static/customercare/yourip.asp","http://ipecho.net/plain","http://myip.dnsomatic.com","http://tnx.nl/ip","http://ifconfig.me"};/*** ip地址的匹配正则表达式*/private static String regEx = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";private static Pattern pattern = Pattern.compile(regEx);/*** 获取本机外网地址** @return*/public static String getSelfPublicIp() {if (publicIp != null && !"".equals(publicIp.trim())) {return publicIp;}for (String url : urls) {//http访问url获取带ip的信息String result = getUrlResult(url);//正则匹配查找ip地址Matcher m = pattern.matcher(result);while (m.find()) {publicIp = m.group();
//                System.out.println(url + " ==> " + publicIp);//只获取匹配到的第一个IP地址return publicIp;}}return null;}/*** http访问url*/private static String getUrlResult(String url) {StringBuilder sb = new StringBuilder();BufferedReader in = null;try {URL realUrl = new URL(url);URLConnection connection = realUrl.openConnection();connection.setConnectTimeout(1000);connection.setReadTimeout(1000);in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {sb.append(line);}} catch (Exception e) {//            System.out.println(e.getMessage());return "";}return sb.toString();}/*** 测试* @param args*/public static void main(String[] args){System.out.println(getSelfPublicIp());}
}

linux命令获取本机外网公网ip地址,java程序获取本机外网公网ip地址 代码相关推荐

  1. Java 程序获取本机 ip 地址

    Java程序获取本机ip地址: host_ip_list = new ArrayList<String>(); try {for (NetworkInterface networkInte ...

  2. java程序获取时区不对,linux时区不正确解决整理

    背景: 运行在linux系统的java程序的时区不对,操作系统时区改正了java程序还是不对. 参考: 1.linux 中 时区不对 及 date 时间 和 hwclock 时间不一致解决方案 2.l ...

  3. JAVA程序获取Tomcat的运行状态

    2019独角兽企业重金招聘Python工程师标准>>> 用浏览器来查看Tomcat的运行状态: 配置Tomcat的管理用户和权限. 打开%Tomcat_Home%/conf/目录下的 ...

  4. java获取服务器信息返回前端,java程序获取linux服务器进程信息

    搜索了很多关于获取Linux的信息,但是没有发现获取linux服务器的进程信息详细说明. 在这里求解一下,能否在java代码中实现读取代码执行的本机linux服务器中的进程信息? 该问题又分为三个小问 ...

  5. php java执行linux_java_java执行Linux命令的方法,本文实例讲述了java执行Linux命 - phpStudy...

    java执行Linux命令的方法 本文实例讲述了java执行Linux命令的方法.分享给大家供大家参考.具体实现方法如下: public class StreamGobbler extends Thr ...

  6. 叮叮获取所有用户信息_钉钉小程序获取用户信息

    1.钉钉小程序只允许开发办公类的程序,不能开发娱乐型的程序. 2.钉钉小程序审核需要产品说明书,最大大小不能超过30M(文档). 3.貌似可以用IP,暂时没有看到有关https的限制. (业务提供商( ...

  7. c++获取数组长度_灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?...

    限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个 ...

  8. uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限

    方法1.uni-app登录加获取手机号解密-直接看此篇即可解决 微信小程序获取手机号注意点: 1.需要先登录,微信小程序登录看这篇 2.手机号获取到时加密的,需要后端解密或者前端自己解密(解密时候就会 ...

  9. Java程序获取和修改.wav音频文件的内部结构

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/79498075冷血之心的博客) wav音频文件是一种无损的音频文件, ...

最新文章

  1. CentOS虚拟机和物理机共享文件夹实现
  2. Mysql字符串字段判断是否包含某个字符串的3种方法
  3. 【鉴轻尘】你说你炒的了币,开发得了项目,然而这些你都知道吗?
  4. 基于深度信念网络的脑电图情感分类
  5. iOS socket
  6. 多页面(MPA)开发 VS 单页面(SPA)开发
  7. Oracle 原理: 物化视图,快照,实体化视图。
  8. 为什么要要使用MyBatis
  9. TIOBE 3月榜单:新功能将加入,C语言仍高居榜首
  10. python实验原理_Python实验报告八
  11. hide show vue 动画_Vue2.x学习四:过渡动画
  12. 手机apk签名工具安卓版_小飞鱼APK签名工具使用方法
  13. 都说90后不好管?聊聊跳槽这件事儿
  14. r语言 array c函数,R语言 数组
  15. mysql5.6.35源码安装记录
  16. Ask and Answer
  17. 今日头条怎么申请开通原创,怎么快速过新手期
  18. yarn 升级最新版本
  19. Sublime3-打开md-1.1
  20. Authorization

热门文章

  1. 推荐一款很经典的网络电话——阿里通网络电话
  2. Bentley 软件公司宣布收购交通仿真技术领先企业 INRO
  3. Python将数字化的金额(不含千分符)转化为中文的大写金额
  4. 洗鞋店洗鞋店拓客下单小程序
  5. 如何有效提升客户满意度
  6. 【查验身份证】Python
  7. vbapython破解各种密码合集
  8. arcgis api for js实现距离测量和面积测量(完整版本)
  9. 论文笔记:PICARD: Parsing Incrementally for Constrained Auto-Regressive Decoding from Language Models
  10. NRZ、NRZI编码