標籤:google hosts
!!!驚喜在下面!!!
1、Update Hosts
import java.awt.Desktop;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URI;import java.net.URISyntaxException;import java.net.URL;/** * 更新Hosts檔案 * * @author MrChu * @version 1.0 * @date 2015年1月16日 * @see www.chuweibiao.com */public class UpdateHosts {/** HTML頁面路徑 */private static final String PAGE_URL = "http://www.360kb.com/kb/2_122.html";/** Hosts檔案路徑 */private static final String HOSTS_PATH = "C:\\Windows\\System32\\drivers\\etc\\hosts";/** Hosts備份檔案路徑 */private static final String HOSTS_BAK_PATH = "C:\\Windows\\System32\\drivers\\etc\\hosts.bak";/** * 根據頁面URL擷取HTML內容 * @param pageUrl * 頁面URL * @return * HTML內容 */public static String getHtmlContent(String pageUrl) {StringBuffer sb = new StringBuffer();BufferedReader in = null;try {URL url = new URL(pageUrl);in = new BufferedReader(new InputStreamReader(url.openStream(), "utf-8"));String temp;while ((temp = in.readLine()) != null) {sb.append(temp);}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}}int begin = sb.indexOf("#google hosts 2015 by 360kb.com");int end = sb.indexOf("#google hosts 2015 end") + 22;return sb.substring(begin, end).toString(); }/** * 轉換HTML內容 * @param pageUrl * 頁面URL * @return * 轉換後的HTML內容 */public static String convertHtmlContent(String pageUrl) {String content = getHtmlContent(pageUrl);content = content.replaceAll("(<br />)+?", "\r\n");content = content.replaceAll(" ", " ");content = content.replaceAll(" ", "");content = content.replaceAll(" ", " ");content = content.replaceAll("</span></p><p><span><span style=\"line-height:22px;\"><span>", "\r\n");content = content.replaceAll("<span> </span>", " ");content = content.replaceAll("</span> ", "");content = content.replaceAll("</span>", "");return content;}/** * 讀取Hosts檔案 * @param filePath * Hosts檔案路徑 * @return * Hosts檔案內容 */public static String readHosts(String filePath) {FileReader fileReader = null;BufferedReader bufferedReader = null;StringBuilder sb = new StringBuilder();try {fileReader = new FileReader(filePath);bufferedReader = new BufferedReader(fileReader);String line = null;while ((line = bufferedReader.readLine()) != null) {sb.append(line).append("\r\n");}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {fileReader.close();bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}return sb.toString();}/** * 更新Hosts檔案 * @param filePath * Hosts檔案路徑 * @param content * Hosts檔案內容 */public static void updateHosts(String filePath, String content) {FileWriter fileWriter = null;BufferedWriter bufferedWriter = null;try {File file = new File(filePath);if (!file.exists()) {file.createNewFile();}fileWriter = new FileWriter(filePath);bufferedWriter = new BufferedWriter(fileWriter);bufferedWriter.write(content);} catch (IOException e) {e.printStackTrace();} finally {try {fileWriter.flush();bufferedWriter.flush();fileWriter.close();bufferedWriter.close();} catch (IOException e) {e.printStackTrace();}}}public static void main(String[] args) {// Hosts檔案備份String hostsContent = "";File file = new File(HOSTS_BAK_PATH);if (file.exists()) {hostsContent = readHosts(HOSTS_BAK_PATH);} else {hostsContent = readHosts(HOSTS_PATH);updateHosts(HOSTS_BAK_PATH , hostsContent);}// Hosts檔案更新String newHostsContent = hostsContent + "\r\n" + convertHtmlContent(PAGE_URL);updateHosts(HOSTS_PATH, newHostsContent);System.out.println("\r\n▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽");System.out.println("\r\n ▇▆▄▃▂▁Hosts檔案更新成功!▁▂▃▄▆▇\r\n");System.out.println("△△△△△△△△△△△△△△△△△△△△△△△△");// 瀏覽器訪問測試可行性try { URI uri = new URI("http://www.google.com/"); Desktop.getDesktop().browse(uri); } catch (URISyntaxException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}}
2、Restore Hosts
import java.io.File;/** * 還原Hosts檔案 * * @author MrChu * @version 1.0 * @date 2015年1月16日 * @see www.chuweibiao.com */public class RestoreHosts {/** Hosts檔案路徑 */private static final String HOSTS_PATH = "C:\\Windows\\System32\\drivers\\etc\\hosts";/** Hosts備份檔案路徑 */private static final String HOSTS_BAK_PATH = "C:\\Windows\\System32\\drivers\\etc\\hosts.bak";/** * 還原Hosts檔案 * @return * true:還原成功,false:還原失敗 */public static boolean restoreHosts() {File file = new File(HOSTS_BAK_PATH);if (!file.exists()) {return false;} else {UpdateHosts.updateHosts(HOSTS_PATH, UpdateHosts.readHosts(HOSTS_BAK_PATH));return file.delete();}}public static void main(String[] args) {if (restoreHosts()) {System.out.println("\r\n▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽");System.out.println("\r\n ▇▆▄▃▂▁Hosts檔案還原成功!▁▂▃▄▆▇\r\n");System.out.println("△△△△△△△△△△△△△△△△△△△△△△△△");} else {System.out.println("\r\n▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽");System.out.println("\r\n ▇▆▄▃▂▁還原失敗,Hosts備份檔案不存在!▁▂▃▄▆▇\r\n");System.out.println("△△△△△△△△△△△△△△△△△△△△△△△△△△△△△△");}}}
Crossing The Great Wall(史上最簡單無公害翻牆之術......):
http://download.csdn.net/detail/for_china2012/8368737
Windows Hosts For Google, Fire In The Hole!