获取公网IP

最近想获取动态公网ip,发现https://mip.chinaz.com这个网站靠谱,结果就想着JAVA爬虫把IP地址爬出来,百度了很多帖子,多数用正则,但跑之后的结果为空,后来还是截取字符串的方式取出了IP地址:
public static void paChong() {
        //爬取内容地址
        URL url = null;
        //创建连接
        URLConnection conn = null;
        //字节输入流
        InputStream is = null;
        //字节转换为字符流
        InputStreamReader isr = null;
        //缓冲流
        BufferedReader br = null;

        //爬取内容存储的容器
        String str = null;
        //明确你要爬取内容的地址
        try {
            //java中的异常处理机制 Java中的异常是有责任制的 不是所有的异常都往外抛
            url = new URL("https://mip.chinaz.com");
            //创建连接
            conn = url.openConnection();

            //使用IO流
            //字节流 每次只能读取一个字节的内容,可以保证内容的完整性,但是效率很低
            is = conn.getInputStream();
            //将字节流升级为字符流,每次可以读取一个字符的内容
            isr = new InputStreamReader(is);
            //将字符流转为字符缓冲流,使用缓冲流的时候要特别注意,最后一次用完了要关闭才能将里面的内容全部读到
            //否则你就要使用自动刷新
            br = new BufferedReader(isr);


            //读取一行内容
            while((str = br.readLine()) != null){
                if(str.contains("您的IP:")){
                    String s = str;
                    //获得第一个点的位置
                    int index = str.indexOf("span");
                    //根据第二个点的位置,截取 字符串。得到结果 result
                    String result = s.substring(index + 19);
                    StringBuffer sb = new StringBuffer(result);
                    while (true) {
                        int index1 = sb.indexOf("</span></h4>");
                        if (index1 == -1) {
                            break;
                        }
                        sb.delete(index1, index1 + "</span></h4>".length());
                    }
                }
                
            }


        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null){
                //关闭流
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

yyds,奥利给,萨瓦迪卡@MC枫少
sb.toString()即为公网IP地址
全部评论
大佬666
点赞 回复 分享
发布于 2022-07-22 13:48

相关推荐

但我还是会继续秋招的
投递京东等公司10个岗位
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务