当前位置:首页 > PHP教程 > php应用 > 列表

php抓取google hosts的程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-08 13:17:59 浏览: 评论:0 

google 在国内打不开了很多朋友会想办法设置一个hosts指定ip了,这样还是可以正常访问的,下面我们给各位介绍一个php抓取google hosts的程序代码,希望对各位有用.

无聊中居然又找到个php版本的抓取google hosts的文件,试了下还可以用,ping了下ip,延迟也不是很高,网页打开测试了下速度也很快,大家有兴趣的话可以试试.php文件代码如下:

  1. <?php 
  2. /** 
  3.  * 免翻墙上google 
  4.  * @author 自娱自乐自逍遥 <wapznw@gmail.com> 
  5.  * Date: 2015/2/6 
  6.  * Time: 11:42 
  7. */ 
  8. define('START_TAG','#google-hosts-2015'); 
  9. define('END_TAG','#google-hosts-2015-end'); 
  10. if(!empty($argv[1])){ 
  11.  $params = array(); 
  12.  parse_str($argv[1], $params); 
  13. if(isset($params['url'])){ 
  14.  define('GOOGLE_HOST_URL', $params['url']); 
  15. if(isset($params['del'])){ 
  16. define('DELETE_GOOGLE_HOST',true); 
  17. defined('GOOGLE_HOST_URL') || define('GOOGLE_HOST_URL''http://www.360kb.com/kb/2_150.html'); 
  18. if(PHP_OS == 'WINNT'){ 
  19.  define('HOSTS_FILE_PATH''C:WindowsSystem32driversetchosts'); 
  20. }else if(in_array(PHP_OS, array('Linux','Darwin','FreeBSD','OpenBSD','WIN32','Windows','Unix'))){ 
  21.  define('HOSTS_FILE_PATH''/etc/hosts'); 
  22. }else//开源软件:phpfensi.com 
  23.  die('Unsupported system!'.PHP_EOL); 
  24. if(!is_writable(HOSTS_FILE_PATH)){ 
  25.  die('Without permission, please use the root user to perform!'.PHP_EOL); 
  26. $hosts = file_get_contents(HOSTS_FILE_PATH); 
  27. $startPos = strpos($hosts, START_TAG); 
  28. if(!defined('DELETE_GOOGLE_HOST')){ 
  29.  $gs = get_google_hosts(); 
  30.  echo GOOGLE_HOST_URL.PHP_EOL; 
  31.  echo $gs.PHP_EOL; 
  32. }else
  33.  $gs = ''
  34.  echo 'reset hosts'.PHP_EOL; 
  35. if($startPos){ 
  36.  $_tmp = substr($hosts, $startPos, strpos($hosts, END_TAG) - $startPos + strlen(END_TAG)); 
  37.  $hosts = str_replace($_tmp,$gs,$hosts); 
  38. }else
  39.  $hosts.= PHP_EOL.$gs; 
  40. $old_file_size = filesize(HOSTS_FILE_PATH); 
  41. if(file_put_contents(HOSTS_FILE_PATH, $hosts)){ 
  42.  die('success. '.PHP_EOL); 
  43. }else
  44. die('fail'.PHP_EOL); 
  45. function get_google_hosts(){ 
  46.  $html = file_get_contents(GOOGLE_HOST_URL); 
  47.  $html = strip_tags($html); 
  48.  $startPos = strpos($html, START_TAG); 
  49.  $html = substr($html, $startPos, strpos($html,END_TAG) - $startPos); 
  50.  $html = str_replace('&nbsp;',' ',$html); 
  51.  return $html.PHP_EOL.END_TAG; 
  52. ?>

Tags: google hosts php抓取

分享到: