CSDB Blog快速備份程序-備份你自己的Blog 基於xml(轉)

以下程序需要htmlparser.jar。你可以直接從
http://umn.dl.sourceforge.net/sourceforge/htmlparser/htmlparser1_5_20040728.zip
下載,http://htmlparser.sourceforge.net是htmlparser的主頁。

//copy from here.

/*******************************************************************************
 * $Header$
 * $Revision$
 * $Date$
 *
 *==============================================================================
 *
 * Copyright (c) 2001-2004 XXX Technologies, Ltd.
 * All rights reserved.
 *
 * Created on 2004-12-3
 *******************************************************************************/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.lexer.Page;
import org.htmlparser.tags.Div;
import org.htmlparser.util.ParserException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

/**
 *
 * @author 晏斐 (mailto:mr_yanfei&yahoo.com)
 */

public final class BlogBackupTool
{
    private static final String RSS_URL = "http://blog.csdn.net/mr_yanfei/Rss.aspx";
    private static final String SAVE_PATH = "d://temp";
    private static final String CHANNEL = "channel";
    private static final String CHANNEL_ITEM = "item";
    private static final String ITEM_TITLE = "title";
    private static final String ITEM_LINK = "link";
    private static final boolean FILTER = true;

    class Blog
    {
        private String fTitle;
        private String fLink;
        public Blog(String title, String link)
        {
            fTitle = title;
            fLink = link;
        }
        public String getTitle()
        {
            return fTitle;
        }
        public String getLink()
        {
            return fLink;
        }
    }

    private Blog[] getBlogs(String rssUrl)
    {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);

        List result = new ArrayList();
        try
        {
            URL url = new URL(rssUrl);
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(url.openStream());

            Element channel = document.getDocumentElement();

            channel = (Element) document.getElementsByTagName(CHANNEL).item(0);
            if (CHANNEL.equals(channel.getLocalName()))
            {

                NodeList nodes = channel.getChildNodes();
                for (int i = 0; i < nodes.getLength(); i++)
                {
                    org.w3c.dom.Node item = nodes.item(i);
                    if (CHANNEL_ITEM.equals(item.getLocalName()))
                    {
                        String title = getChildNodeText(item, ITEM_TITLE);
                        String link = getChildNodeText(item, ITEM_LINK);
                        result.add(new Blog(title, link));
                    }
                }
            }
        } catch (Exception ex)
        {
            ex.printStackTrace();
        }
        return (Blog[]) result.toArray(new Blog[result.size()]);
    }

    private String getChildNodeText(org.w3c.dom.Node item, String nodeName)
    {

        NodeList nodes = item.getChildNodes();
        for (int i = 0; i < nodes.getLength(); i++)
        {
            org.w3c.dom.Node node = nodes.item(i);
            if (nodeName.equals(node.getLocalName()))
            {
                return node.getFirstChild().getNodeValue();
            }
        }
        return null;
    }

    private String validFilename(String name)
    {
        String result = name.replace(':', '_');
        result = result.replace('/', '_');
        result = result.replace('//', '_');
        result = result.replace('?', '?');
        result = result.replace('*', '_');
        result = result.replace('<', '_');
        result = result.replace('>', '_');
        result = result.replace('|', '_');
        result = result.replace('"', '_');
        return result;
    }

    private void saveBlogs(Blog[] blogs) throws Exception
    {

        String title, link;
        for (int i = 0; i < blogs.length; i++)
        {
            title = blogs[i].getTitle();
            link = blogs[i].getLink();

            System.out.println("Get Blog " + title);
            System.out.println("URL : " + link);

            if (FILTER)
            {
                Parser parser = null;
                try
                {
                    parser = new Parser(link);
                } catch (ParserException ex)
                {
                    continue;
                }
                Page page = parser.getLexer().getPage();
                String pageUrl = page.getUrl();

                Node[] bases = parser.extractAllNodesThatAre(Div.class);
                for (int j = 0; j < bases.length; j++)
                {
                    String attr = ((Div) bases[j]).getAttribute("class");

                    if (attr == null)
                        attr = "";

                    if (attr.equals("post"))
                    {
                        String content = ((Div) bases[j]).getChildrenHTML();
                        saveBlogToFile(title + ".html", content);
                        break;
                    }
                }
                parser.reset();
            } else
            {
                StringBuffer buffer = getHtmlFromURL(link);
                saveBlogToFile(title + ".html", buffer.toString());
            }
        }
    }

    private StringBuffer getHtmlFromURL(String url)
    {
        StringBuffer buffer = new StringBuffer();
        try
        {
            URL pageUrl = new URL(url);

            BufferedReader in = new BufferedReader(new InputStreamReader(
                    pageUrl.openStream()));
            String str;
            while ((str = in.readLine()) != null)
            {
                buffer.append(str);
            }
            in.close();
        } catch (MalformedURLException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        return buffer;
    }

    private void saveBlogToFile(String filename, String content)
    {
        try
        {
            filename = validFilename(filename);
            File file = new File(SAVE_PATH, filename);
            OutputStream out = new FileOutputStream(file);
            OutputStreamWriter writer = new OutputStreamWriter(out);
            writer.write(content);
            writer.close();
        } catch (IOException ex)
        {

        }
    }

    public static void main(String[] args) throws Exception
    {
        BlogBackupTool reader = new BlogBackupTool();
        Blog[] blogs = reader.getBlogs(RSS_URL);

        reader.saveBlogs(blogs);
        String msg = MessageFormat.format("Totle {0} blogs saved.",
                new String[] { Integer.toString(blogs.length) });
        System.out.println(msg);
    }
}
//end

XML文件:

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>晏斐的Blog</title><link>http://blog.csdn.net/mr_yanfei/</link><description /><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.2001</generator><item><dc:creator>晏斐</dc:creator><title>WebOnSwing</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx</link><pubDate>Fri, 31 Dec 2004 14:22:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/235924.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/235924.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/235924.aspx</trackback:ping><description>WebOnSwing is a revolutionary multiple environment application framework that allows you to create web applications in the same way you develope a desktop one. You dont need to use JSP files, special tags, XML files, requests, posts, etc. Everything is Java and pure HTML files that comes directly from the graphic designer. &lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/235924.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>What is SwingWT?</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx</link><pubDate>Fri, 31 Dec 2004 13:54:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/235889.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/235889.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/235889.aspx</trackback:ping><description>SwingWT is a 100% pure Java library which aims to be a free implementation of Swing and AWT. Unlike Swing, it drives native peer widgets for your platform from SWT.&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/235889.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Java Launcher 2.3 released </title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx</link><pubDate>Fri, 31 Dec 2004 13:52:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/235886.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/235886.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/235886.aspx</trackback:ping><description>(1) Launching java applications and applets by double-clicking class files in Windows explorer.
(2) Launching java source code in text format and class hierarchy in graphic format by right-clicking class files in Windows explorer.
(3) Creating Windows exe files for Java applications with user icon, arguments, system, user and sibling classpaths
(4) Creating executable Jar files for Java applications &lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/235886.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>CSDB Blog快速備份程序-備份你自己的Blog</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx</link><pubDate>Fri, 03 Dec 2004 18:18:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/203699.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/203699.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/203699.aspx</trackback:ping><description>自己寫的Blog放到網上總有點不放心。想做一個備份,於是寫了這個程序。會將所有文件一股腦都保存到d:/temp下,再打個包保存起來。需要先下載一個htmlparser.jar.&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/203699.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>一邊編程一邊閱讀Blog-Eclipse Rss Reader</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx</link><pubDate>Fri, 03 Dec 2004 12:43:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/203209.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/203209.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/203209.aspx</trackback:ping><description>工作累了的時候想看看csdn的blog上有什麼新的文章嗎?不用打開瀏覽器就知道今天有什麼新的文章。試試Eclipse Rss Reader吧。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/203209.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>輕量級的xml parser: KXML</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx</link><pubDate>Sat, 27 Nov 2004 16:12:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195953.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195953.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195953.aspx</trackback:ping><description>kXML is a small XML pull parser, specially designed for constrained environments such as Applets, Personal Java or MIDP devices.

最小的版本只有11k,比那些龐大的xml解析起確實小好多。當你對xml解析不需要很嚴格時可以使用它。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195953.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>An OSGi framework implementation </title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx</link><pubDate>Sat, 27 Nov 2004 15:51:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195930.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195930.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195930.aspx</trackback:ping><description>Oscar is an open source implementation of the Open Services Gateway Initiative (OSGi) framework specification; the goal is to provide a completely compliant implementation of the OSGi framework specification. Oscar is currently compliant with a large portion of the OSGi 3 specifications, although certain compliance work still needs to be completed. Despite this fact, the OSGi framework functionality provided by Oscar is very stable and is in use by many people. &lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195930.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>XSWT for Eclipse form layout</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx</link><pubDate>Sat, 27 Nov 2004 14:52:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195878.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195878.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195878.aspx</trackback:ping><description>現在開發的產品中用戶界面也是用XML定義的,但是界面定義很不靈活。XSWT網站上介紹說XSWT是和SWT元素一一對應的,應該有很大的靈活性。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195878.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>幫你免於失業的十大軟件技術</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx</link><pubDate>Sat, 27 Nov 2004 13:17:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195782.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195782.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195782.aspx</trackback:ping><description>羅素·瓊斯是DevX的執行編輯,她提出了當前軟件行業的十門熱點技術。收藏並時刻勉勵自己學海無涯。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195782.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Eclipse, OSGI與Plugin機制雜談</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx</link><pubDate>Sat, 27 Nov 2004 12:00:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195701.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195701.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195701.aspx</trackback:ping><description>Eclipse 3.0並沒有用OSGI替換掉原來的PlugIn機制。它只是做了與標準兼容的工作:給用戶提供了一系

列的API來訪問,在這個過程中,就必須要做一些改變(比如plugin registry和loading機制)來同OSGI標

準完全兼容。最初的Plugin核心只支持靜態的擴展,就是說,如果要改變一個已經存在的Plug就必須重啓

core,也就是要退出Eclipse並重啓。

有很多人問Eclipse爲什麼要兼容OSGI規範而不是其他的規範呢?
在Eclipse被捐贈出來以前,Eclipse由OTI來開發,其目標是開發一個嵌入式Java軟件的開發平臺。互聯

網上現在仍然由很多的連接指向 Visual Age Micro Edition (VAME). 這也是SWT被構思的一個原因,他

們想將SWT使用在嵌入式設備中的用戶界面。這種淵源關係解釋了當時爲什麼選擇OSGI規範。

另外一個原因是除了OSGI沒有其他的規範。OSGI規範在輕量級服務架構應用方面被廣泛的支持。而且OSGI被好多電信業的知名公司和一些其他行業的知名公司所支持。他們需&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195701.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Eclipse資源改變通知機制</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx</link><pubDate>Fri, 26 Nov 2004 15:59:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/194660.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/194660.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/194660.aspx</trackback:ping><description>"How you've Changed"詳細描述了Eclipse的資源改變事件通知機制。以及開發者如何獲得資源改變事件和如何作出相應的操作。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/194660.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>發現魔方陣的一個有趣現象</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx</link><pubDate>Tue, 23 Nov 2004 09:57:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/191715.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/191715.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/191715.aspx</trackback:ping><description>昨天機器上裝了一個MatLab 6.5,無意中發現一個有趣的現象:
n階魔方陣的行列式值等於零。條件是(n mode 2 = 0 and n &gt; 2);&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/191715.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>關於“軟件學院”的思考</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx</link><pubDate>Mon, 15 Nov 2004 16:18:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/182658.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/182658.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/182658.aspx</trackback:ping><description>在網上看到這樣一段話,很有意思。我也很贊同。...&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/182658.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>天網防火牆去掉更新提示對話框</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx</link><pubDate>Mon, 15 Nov 2004 16:10:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/182645.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/182645.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/182645.aspx</trackback:ping><description>裝了個天網2.7,用着不錯。就是每次啓動都會彈出一個對話框,提示有新的版本,要不要更新。太麻煩,每次重啓都要去關掉它。做的太不人性化了。
於是想去掉它。天網是delphi寫的,用DeDe反編譯後,NewVerFrm竟然找不到createForm之類的函數,所以不是在NewVerFrm裏面判斷的。又找了好幾個地方都不是。又打開W32Dasm看了看,也不好弄。
忽然一想,天網判斷是否有更新版本當然要訪問網絡,於是用Sniffer Pro監聽Http協議,發現程序會去訪問
http://sky.net.cn/pfwupdate/NewVer.php 這個地址。然後返回最新的版本號和本地的版本比較。

打開UltraEdit,查找以上地址,將地址改爲http://sky.net.cm/pfwupdate/NewVer.php 這樣它永遠也訪問不到了。重新啓動天網,討厭的對話框沒有了。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/182645.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Java破解的新思路</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx</link><pubDate>Mon, 15 Nov 2004 13:04:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/182329.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/182329.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/182329.aspx</trackback:ping><description>前幾天在網上看到有一個xml編輯的插件,做的挺好。但是pro版本要註冊。下載了一個用着不錯,功能挺多。...決定破解一下。找到了LicenseDialog,折騰了半天知道了使用的是RSA算法。昨晚在網上看到說超過1024bit,幾乎就沒有了破解的可能。決定放棄。找找別的辦法。
&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/182329.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>

結果顯示:
Get Blog WebOnSwing
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx
Get Blog What is SwingWT?
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx
Get Blog Java Launcher 2.3 released
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx
Get Blog CSDB Blog快速備份程序-備份你自己的Blog
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx
Get Blog 一邊編程一邊閱讀Blog-Eclipse Rss Reader
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx
Get Blog 輕量級的xml parser: KXML
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx
Get Blog An OSGi framework implementation
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx
Get Blog XSWT for Eclipse form layout
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx
Get Blog 幫你免於失業的十大軟件技術
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx
Get Blog Eclipse, OSGI與Plugin機制雜談
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx
Get Blog Eclipse資源改變通知機制
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx
Get Blog 發現魔方陣的一個有趣現象
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx
Get Blog 關於“軟件學院”的思考
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx
Get Blog 天網防火牆去掉更新提示對話框
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx
Get Blog Java破解的新思路
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章