JAVA獲取公網ip


在ipv4地址稀缺的今天,分配到公網ip幾乎是不可能的,但是我撥號之后的ip竟然是公網IP。

將自己的電腦作為服務器·,做點好玩的程序,就成為了可能。

由於運營商的ip是動態分配的公網ip的所以就需要做一個動態解析。

但是又沒有服務器,應該怎么辦呢?

思路是首先服務端獲取公網ip,將IP加密后作為文章發布到莫個知名論壇上。客戶端通過查詢這篇文章,並解密來獲取ip

這樣就可以實現動態解析了

由於電腦還加了個路由器,所以不能直接獲取公網ip,此時就需要借助第三方網站了。

百度搜索ip會出現

通過分析找到了關鍵地址

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

這個網頁非常簡潔,包含ip和地址

通過爬取這個地址即可獲得公網ip

 1 package 動態ip發布;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 import java.io.InputStreamReader;
 7 import java.io.PrintWriter;
 8 import java.net.MalformedURLException;
 9 import java.net.URL;
10 import java.net.URLConnection;
11 
12 public class Main {
13     public static void main(String args[]) {
14         System.out.println(getip.publicip());
15     }
16 }
17 class getip {
18     public static String 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(new InputStreamReader(
26                     urlconn.getInputStream()));
27             String buf = null;
28             String get= null;
29             while ((buf = br.readLine()) != null) {
30                 get+=buf;
31             }
32             int where,end;
33             for(where=0;where<get.length()&&get.charAt(where)!='[';where++);
34             for(end=where;end<get.length()&&get.charAt(end)!=']';end++);
35             get=get.substring(where+1,end);
36             return get;
37         } catch (MalformedURLException e) {
38             e.printStackTrace();
39         } catch (IOException e) {
40             e.printStackTrace();
41         } finally {
42             try {
43                 br.close();
44             } catch (IOException e) {
45                 e.printStackTrace();
46             }
47         }
48         return null;
49     }
50 }

 更新:

有園友對文章有些疑問

下面進行補充

如上圖可以看到下面有一個鏈接,打開后是

按F12打開瀏覽器的調試工具

 

 很容易發現這個地址,打開后就是

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM