黑马程序员技术交流社区

标题: 用正则表达式获取外网IP和归属地 [打印本页]

作者: 黑夜中那颗星    时间: 2015-11-20 10:41
标题: 用正则表达式获取外网IP和归属地
  1. import java.util.regex.*;
  2. import java.net.*;
  3. import java.util.*;
  4. import java.io.*;
  5. //获取外网IP和IP所属地
  6. public class Test {
  7.         public static void main(String[] args){
  8.                 BufferedReader br = null;
  9.                 ArrayList<String> s = new ArrayList<String>();
  10.                 try{
  11.                         URL u = new URL("http://www.ip.cn/");
  12.                         URLConnection url = u.openConnection();
  13.                         br = new BufferedReader(new InputStreamReader(url.getInputStream(),"UTF-8"));
  14.                         String str = null;
  15.                         String reg = "当前 IP:<code>[0-9\\.]+</code>";
  16.                         String str2 = null;
  17.                         String str3 = null;
  18.                         String reg3 = "来自:.+</p><p>";
  19.                         while((str = br.readLine())!=null){
  20.                                 Pattern p = Pattern.compile(reg);
  21.                                 Matcher m = p.matcher(str);
  22.                                 while(m.find()){
  23.                                         str2 = m.group();
  24.                                 }
  25.                                 p = Pattern.compile(reg3);
  26.                                 m = p.matcher(str);
  27.                                 while(m.find()){
  28.                                         str3 = m.group();
  29.                                 }
  30.                         }
  31.                         String reg2 = "[0-9].+[0-9]";
  32.                         Pattern p = Pattern.compile(reg2);
  33.                         Matcher m = p.matcher(str2);
  34.                         while(m.find()){
  35.                                 System.out.print("外网IP:"+m.group());
  36.                         }
  37.                         reg3 = "[^</>p来自:]";
  38.                         p = Pattern.compile(reg3);
  39.                         m = p.matcher(str3);
  40.                         while(m.find()){
  41.                                 s.add(m.group());
  42.                         }
  43.                         System.out.print("\n地址:");
  44.                         for(String ss : s){
  45.                                 System.out.print(ss);
  46.                         }
  47.                 }
  48.                 catch(IOException e){
  49.                         throw new RuntimeException("读入文件出错");
  50.                 }
  51.         }
  52. }
复制代码

作者: waimifeier    时间: 2015-11-20 15:21
基础里面讲了这个没
作者: ppaapc    时间: 2015-11-20 23:56
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2