更新Hosts 的小工具 轻松上google youtube facebook 23日更新

仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子
头像
bcsflilong
帖子: 382
注册时间: 2010-07-24 15:18
系统: Arch Linux x86_x86_6
来自: 吉林省长春市
联系:

Re: 更新Hosts 的小工具 轻松上google youtube facebook

#16

帖子 bcsflilong » 2015-01-23 23:48

hacker85 写了::em05 :em05 :em05 :em05 :em05 :em05
1、是否可以讲述一下技术原理
2、是否可以将源码的相关内容注释
3、是否可以将软件运行的环境及相关的依赖等条件说明。

1、是否可以讲述一下技术原理
技术原理很简单的 就是在一位友人 :em09 (其实我也不认识他) 他的博客上 有个功能 点击一个按钮 就能生成最新的hosts
我之前就是每次去点 之后把生成的hosts粘贴到我机器上,但是hosts现在更新太快了 每次都粘 太麻烦,于是我就去他那抓了。

就是用HttpURLConnection去模拟一个请求 之后抓取返回结果 在写入本地文件了。

代码: 全选

URL url = new URL(createUrl(hostspasscode, gs, wk, twttr, fb, flkr, dpbx, odrv, yt, nohl));
        //System.out.println(cookie);
       // System.out.println(url.toString());
        
       conn = (HttpURLConnection) url.openConnection();

        conn.setConnectTimeout(5 * 1000);
        conn.setDoOutput(true);
        //get方式提交
        conn.setRequestMethod("GET");
        //凭借请求头文件
        conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
        conn.setRequestProperty("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
        conn.setRequestProperty("Connection", "keep-alive");
        conn.setRequestProperty("Cookie", cookie);
        conn.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0");


这里可能是这位友人的博客为了防止盗链 所以每次都要有cookie 在里面,其实每次提交一个随机五位数就好了

另外 这个网址返回的输入流 是gzip格式,所以解析的时候先包装一下,就ok了

代码: 全选

**
     * 读取将InputStream中的字节读以字符的形式取到字符串中,如果encoding是gzip,那么需要先有GZIPInputStream进行封装
     *
     * @param inputStream InputStream字节流
     * @param encoding 编码格式
     * @return String类型的形式
     * @throws IOException IO异常
     */
    private String readStream(InputStream inputStream, String encoding) throws Exception {
        StringBuffer buffer = new StringBuffer();
        ProgressMonitorInputStream pmis = null;
         
        InputStreamReader inputStreamReader = null;
        GZIPInputStream gZIPInputStream = null;
        if (GZIPCODING.equals(encoding)) {
            gZIPInputStream = new GZIPInputStream(inputStream);
            inputStreamReader = new InputStreamReader(ProgressUtil.getMonitorInputStream(gZIPInputStream, "获取网络数据"), ENCODING);
           
        } else {
            
            inputStreamReader = new InputStreamReader(ProgressUtil.getMonitorInputStream(inputStream, "获取网络数据"), ENCODING);
        }
        
        
        char[] c = new char[1024];
        
        int lenI;
        while ((lenI = inputStreamReader.read(c)) != -1) {
            
            buffer.append(new String(c, 0, lenI));
            
        }
        if (inputStream != null) {
            inputStream.close();
        }
        if (gZIPInputStream != null) {
            gZIPInputStream.close();
        }
        if (pmis!=null) {
            gZIPInputStream.close();
        }
        

        return buffer.toString();


    }
另外说一下运行环境吧,因为是java写的应该是跨平台,但目前我只有ubuntu 和windows的机器 所以不知道mac可以不可以。。

其实我都不知道mac的hosts文件在哪里 所以我没做处理,算作不支持的系统。

另外重启网络的命令 我也不晓得 所以放弃了

但windows 和ubuntu 一定没问题。

需要JDK1。6 版本。要有sudo 运行。否则没有权限修改文件。
life's a struggle
头像
bcsflilong
帖子: 382
注册时间: 2010-07-24 15:18
系统: Arch Linux x86_x86_6
来自: 吉林省长春市
联系:

Re: 更新Hosts 的小工具 轻松上google youtube facebook

#17

帖子 bcsflilong » 2015-01-23 23:49

月下叹逍遥 写了:python大法好
我也发现了 可惜我不会呀 :em06 :em06 :em06 :em06
life's a struggle
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: 更新Hosts 的小工具 轻松上google youtube facebook 23日更新

#18

帖子 jinjiachen » 2015-01-24 14:39

这们友人的博客网站能分享下吗?无奈之时可以手动得到ip满足下要求 :em09
头像
bcsflilong
帖子: 382
注册时间: 2010-07-24 15:18
系统: Arch Linux x86_x86_6
来自: 吉林省长春市
联系:

Re: 更新Hosts 的小工具 轻松上google youtube facebook 23日更新

#19

帖子 bcsflilong » 2015-01-25 22:20

jinjiachen 写了:这们友人的博客网站能分享下吗?无奈之时可以手动得到ip满足下要求 :em09
http://serve.netsh.org/pub/gethosts.php
life's a struggle
lord007
帖子: 555
注册时间: 2009-07-13 21:54

Re: 更新Hosts 的小工具 轻松上google youtube facebook 23日更新

#20

帖子 lord007 » 2015-02-06 22:46

链接被重置,见光死啊 :em06
南无阿弥陀佛
头像
236069750
帖子: 147
注册时间: 2009-03-09 21:20

Re: 更新Hosts 的小工具 轻松上google youtube facebook 23日更新

#21

帖子 236069750 » 2015-02-26 12:18

围观更新。。。。。
头像
bcsflilong
帖子: 382
注册时间: 2010-07-24 15:18
系统: Arch Linux x86_x86_6
来自: 吉林省长春市
联系:

Re: 更新Hosts 的小工具 轻松上google youtube facebook 23日更新

#22

帖子 bcsflilong » 2015-05-04 16:02

236069750 写了:围观更新。。。。。
我更新不了 原来的博主 现在防盗链的水平 太狠了
life's a struggle
hacker85
帖子: 585
注册时间: 2010-02-25 11:19

Re: 更新Hosts 的小工具 轻松上google youtube facebook 23日更新

#23

帖子 hacker85 » 2015-05-06 14:55

bcsflilong 写了:我更新不了 原来的博主 现在防盗链的水平 太狠了
你已经尽力了,为你的这篇文章和你的小程序感到高兴,这是自己的成果。 :em11 :em11 :em11
头像
bcsflilong
帖子: 382
注册时间: 2010-07-24 15:18
系统: Arch Linux x86_x86_6
来自: 吉林省长春市
联系:

Re: 更新Hosts 的小工具 轻松上google youtube facebook 23日更新

#24

帖子 bcsflilong » 2015-05-30 22:00

hacker85 写了:
bcsflilong 写了:我更新不了 原来的博主 现在防盗链的水平 太狠了
你已经尽力了,为你的这篇文章和你的小程序感到高兴,这是自己的成果。 :em11 :em11 :em11
:em11 :em11
life's a struggle
回复