linux命令获取本机外网公网ip地址,java程序获取本机外网公网ip地址 代码
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.me2 返回带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地址 代码相关推荐
- Java 程序获取本机 ip 地址
Java程序获取本机ip地址: host_ip_list = new ArrayList<String>(); try {for (NetworkInterface networkInte ...
- java程序获取时区不对,linux时区不正确解决整理
背景: 运行在linux系统的java程序的时区不对,操作系统时区改正了java程序还是不对. 参考: 1.linux 中 时区不对 及 date 时间 和 hwclock 时间不一致解决方案 2.l ...
- JAVA程序获取Tomcat的运行状态
2019独角兽企业重金招聘Python工程师标准>>> 用浏览器来查看Tomcat的运行状态: 配置Tomcat的管理用户和权限. 打开%Tomcat_Home%/conf/目录下的 ...
- java获取服务器信息返回前端,java程序获取linux服务器进程信息
搜索了很多关于获取Linux的信息,但是没有发现获取linux服务器的进程信息详细说明. 在这里求解一下,能否在java代码中实现读取代码执行的本机linux服务器中的进程信息? 该问题又分为三个小问 ...
- php java执行linux_java_java执行Linux命令的方法,本文实例讲述了java执行Linux命 - phpStudy...
java执行Linux命令的方法 本文实例讲述了java执行Linux命令的方法.分享给大家供大家参考.具体实现方法如下: public class StreamGobbler extends Thr ...
- 叮叮获取所有用户信息_钉钉小程序获取用户信息
1.钉钉小程序只允许开发办公类的程序,不能开发娱乐型的程序. 2.钉钉小程序审核需要产品说明书,最大大小不能超过30M(文档). 3.貌似可以用IP,暂时没有看到有关https的限制. (业务提供商( ...
- c++获取数组长度_灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?...
限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个 ...
- uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限
方法1.uni-app登录加获取手机号解密-直接看此篇即可解决 微信小程序获取手机号注意点: 1.需要先登录,微信小程序登录看这篇 2.手机号获取到时加密的,需要后端解密或者前端自己解密(解密时候就会 ...
- Java程序获取和修改.wav音频文件的内部结构
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/79498075冷血之心的博客) wav音频文件是一种无损的音频文件, ...
最新文章
- CentOS虚拟机和物理机共享文件夹实现
- Mysql字符串字段判断是否包含某个字符串的3种方法
- 【鉴轻尘】你说你炒的了币,开发得了项目,然而这些你都知道吗?
- 基于深度信念网络的脑电图情感分类
- iOS socket
- 多页面(MPA)开发 VS 单页面(SPA)开发
- Oracle 原理: 物化视图,快照,实体化视图。
- 为什么要要使用MyBatis
- TIOBE 3月榜单:新功能将加入,C语言仍高居榜首
- python实验原理_Python实验报告八
- hide show vue 动画_Vue2.x学习四:过渡动画
- 手机apk签名工具安卓版_小飞鱼APK签名工具使用方法
- 都说90后不好管?聊聊跳槽这件事儿
- r语言 array c函数,R语言 数组
- mysql5.6.35源码安装记录
- Ask and Answer
- 今日头条怎么申请开通原创,怎么快速过新手期
- yarn 升级最新版本
- Sublime3-打开md-1.1
- Authorization