php抓取google hosts的程序代码
google 在国内打不开了很多朋友会想办法设置一个hosts指定IP了,这样还是可以正常访问的,下面我们给各位介绍一个php抓取google hosts的程序代码,希望对各位有用.
无聊中居然又找到个php版本的抓取google hosts的文件,试了下还可以用,ping了下ip,延迟也不是很高,网页打开测试了下速度也很快,大家有兴趣的话可以试试.
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; }
本文地址:http://www.phprm.com/code/78744.html
转载随意,但请附上文章地址:-)