无聊中居然又找到个php版本的抓取google hosts的文件,试了下还可以用,ping了下ip,延迟也不是很高,网页打开测试了下速度也很快,大家有兴趣的话可以试试.
自动更新hosts文件, 不覆盖已存在的记录,方便使用,不用每次都 复制->打开hosts文件->粘贴。
php文件:
<?php /** * 免翻墙上google * @author 自娱自乐自逍遥 <wapznw@gmail.com> * 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; }
本文地址:https://www.stayed.cn/item/18936
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我