java 公网ip_JAVA获取公网ip

在ipv4地址稀缺的今天,分配到公网ip几乎是不可能的,但是我拨号之后的ip竟然是公网IP。

将自己的电脑作为服务器·,做点好玩的程序,就成为了可能。

由于运营商的ip是动态分配的公网ip的所以就需要做一个动态解析。

但是又没有服务器,应该怎么办呢?

思路是首先服务端获取公网ip,将IP加密后作为文章发布到莫个知名论坛上。客户端通过查询这篇文章,并解密来获取ip

这样就可以实现动态解析了

由于电脑还加了个路由器,所以不能直接获取公网ip,此时就需要借助第三方网站了。

百度搜索ip会出现

85efba5518691fb445827a5635aac6b4.png

通过分析找到了关键地址

http://2017.ip138.com/ic.asp

fc5a97262f4a3aeb144b884d32cc4c3c.png

这个网页非常简洁,包含ip和地址

通过爬取这个地址即可获得公网ip

1 package动态ip发布;2

3 importjava.io.BufferedReader;4 importjava.io.FileWriter;5 importjava.io.IOException;6 importjava.io.InputStreamReader;7 importjava.io.PrintWriter;8 importjava.net.MalformedURLException;9 importjava.net.URL;10 importjava.net.URLConnection;11

12 public classMain {13 public static voidmain(String args[]) {14 System.out.println(getip.publicip());15 }16 }17 classgetip {18 public staticString publicip() {19 URL url = null;20 URLConnection urlconn = null;21 BufferedReader br = null;22 try{23 url = new URL("http://2017.ip138.com/ic.asp");//爬取的网站是百度搜索ip时排名第一的那个

24 urlconn =url.openConnection();25 br = new BufferedReader(newInputStreamReader(26 urlconn.getInputStream()));27 String buf = null;28 String get= null;29 while ((buf = br.readLine()) != null) {30 get+=buf;31 }32 intwhere,end;33 for(where=0;where

更新:

有园友对文章有些疑问

79a4b5f9135b1e790d706e363b369cc8.png

下面进行补充

c19da7df1996f990d5f218bda514472f.png

如上图可以看到下面有一个链接,打开后是

4d4372c00e7d232476c89fccf34ee1a9.png

按F12打开浏览器的调试工具

60f40234ec7aca971d5387b27dca9de9.png

很容易发现这个地址,打开后就是

4215f7092c47be8dfc5aa091bb965111.png

http://2018.ip138.com/ic.asp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值