首页 > 开发 > PHP > 正文

PHP实现抓取Google IP并自动修改hosts文件

2024-05-04 23:31:14
字体:
来源:转载
供稿:网友

这篇文章主要介绍了PHP实现抓取Google IP并自动修改hosts文件,本文方法可以实现免翻墙上google,小编亲测可用,需要的朋友可以参考下

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

自动更新hosts文件, 不覆盖已存在的记录,方便使用,不用每次都 复制->打开hosts文件->粘贴。

php文件:

 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表