从服务器内部获取公网IP
发布日期:2021-06-29 05:35:02
浏览次数:2
分类:技术文章
本文共 1912 字,大约阅读时间需要 6 分钟。
前言
在大公司里面网络架构可谓是复杂,如果您的服务(域名)需要公网出口IP权限,比如果某些服务如银行,微信企业提现等接口需要配置到微信或者银行商户后台做IP白名单,这个可真是一件不简单的事情,前期踩了个坑,以为域名解析出来的VIP(虚拟ip)就是公网出口IP,最后解决不了找运维sa,让他们给做个服务映射的公网出口IP(我的服务有十几台机器没法完全配置到微信商户后台),但是好像他们给我配置多了,给错了IP,我郁闷了一天,感觉他们不会犯这种低级错误,然后找他们理论是否配置错误,竟然不承认,我这边也没办法去证明,网上就找了几个查询公网出口IP的网页,自己取抓页面数据,最终解决。
介绍
常用的IP出口探测工具:
http://www.ip138.com/ips138.asp
使用
首先我再服务器内部写个应用去访问这个页面,找到我的IP,此时这个IP就是对应的公网出口IP,有可能是多个,因为每个机房可能有一个出口IP。
@Controller public class TestController { @RequestMapping("/test/getPublicIp") @ResponseBody public static String getPublicIp() { try { String path = "http://www.ip138.com/ips138.asp";// 要获得html页面内容的地址 URL url = new URL(path);// 创建url对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 打开连接 conn.setRequestProperty("contentType", "GBK"); // 设置url中文参数编码 conn.setConnectTimeout(5 * 1000);// 请求的时间 conn.setRequestMethod("GET");// 请求方式 InputStream inStream = conn.getInputStream(); // readLesoSysXML(inStream); BufferedReader in = new BufferedReader(new InputStreamReader( inStream, "GBK")); StringBuffer buffer = new StringBuffer(); String line = ""; // 读取获取到内容的最后一行,写入 while ((line = in.readLine()) != null) { buffer.append(line); } String str = buffer.toString(); String ipString1 = str.substring(str.indexOf("[")); String ipsString2 = ipString1.substring(ipString1.lastIndexOf("]")-14 , ipString1.lastIndexOf("]")+1); // 返回公网IP值 return ipsString2; } catch (Exception e) { System.out.println("获取公网IP连接超时"); return "连接超时"; } } }
转载地址:https://blog.csdn.net/zhizunmimi/article/details/90767219 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月27日 17时01分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
短视频APP开发者告诉你:苹果手机加上它也能用美颜 ...
2019-04-29
解析家纺企业使用的ERP系统 呈现三大特点
2019-04-29
关于MAC地址的相关知识学习笔记
2019-04-29
python方法对象 类和实例变量
2019-04-29
使用“微服务+云架构”轻松应对系统扩容!
2019-04-29
特斯拉再失高管,工程高级副总裁离职
2019-04-29
机器如何“猜你喜欢”?深度学习模型在1688的应用实践 ...
2019-04-29
面试系列-String,StringBuffer,StringBuilder三者区别
2019-04-29
裁员、卖厂,全球第三大晶圆代工厂格罗方德或难逃被收购命运 ...
2019-04-29
ECI支持大规格实例
2019-04-29
Flutter终将逆袭!1.2版本发布,或将统一江湖
2019-04-29
关于OTA升级从高版本到低版本升级后,数据库无法降级引起的异常分析
2019-04-29
Android开机时间分析
2019-04-29
Android跨进程异常分析小结
2019-04-29
Android 低内存导致monkey killed分析指南
2019-04-29
关于ota升级查找不到更新包的原因分析
2019-04-29
深入分析Android开机找网延迟
2019-04-29
“OTA在线升级时打开USB存储设备时提示下载失败”分析
2019-04-29