php抓取google hosts

post by rocdk890 / 2015-2-9 11:06 Monday 其他技术
  无聊中居然又找到个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('&nbsp;',' ',$html);
 return $html.PHP_EOL.END_TAG;
}

ps:
http://www.thinksaas.cn/group/topic/351137/
感谢这位大神提供的php版.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-571.html

标签: php ip google hosts 翻墙

评论: