无聊中居然又找到个php版本的抓取google hosts的文件,试了下还可以用,ping了下ip,延迟也不是很高,网页打开测试了下速度也很快,大家有兴趣的话可以试试.
自动更新hosts文件, 不覆盖已存在的记录,方便使用,不用每次都 复制->打开hosts文件->粘贴。
php文件:
* date: 2015/2/6 * time: 11:42*/define('start_tag','#google-hosts-2015');define('end_tag','#google-hosts-2015-end');if(!empty($argv[1])){ $params = array(); parse_str($argv[1], $params);if(isset($params['url'])){ define('google_host_url', $params['url']);}if(isset($params['del'])){define('delete_google_host',true);}}defined('google_host_url') || define('google_host_url', 'http://www.360kb.com/kb/2_150.html');if(php_os == 'winnt'){ define('hosts_file_path', 'c:windowssystem32driversetchosts');}else if(in_array(php_os, array('linux','darwin','freebsd','openbsd','win32','windows','unix'))){ define('hosts_file_path', '/etc/hosts');}else{ die('unsupported system!'.php_eol);}if(!is_writable(hosts_file_path)){ die('without permission, please use the root user to perform!'.php_eol);}$hosts = file_get_contents(hosts_file_path);$startpos = strpos($hosts, start_tag);if(!defined('delete_google_host')){ $gs = get_google_hosts(); echo google_host_url.php_eol; echo $gs.php_eol;}else{ $gs = ''; echo 'reset hosts'.php_eol;}if($startpos){ $_tmp = substr($hosts, $startpos, strpos($hosts, end_tag) - $startpos + strlen(end_tag)); $hosts = str_replace($_tmp,$gs,$hosts);}else{ $hosts.= php_eol.$gs;}$old_file_size = filesize(hosts_file_path);if(file_put_contents(hosts_file_path, $hosts)){ die('success. '.php_eol);}else{die('fail'.php_eol);}function get_google_hosts(){ $html = file_get_contents(google_host_url); $html = strip_tags($html); $startpos = strpos($html, start_tag); $html = substr($html, $startpos, strpos($html,end_tag) - $startpos); $html = str_replace(' ',' ',$html); return $html.php_eol.end_tag;}
,