首页 > php开发 > php抓取google hosts的程序代码

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:\Windows\System32\driver\setchosts');
} elseif (in_array(PHP_OS, array(
    'Linux',
    'Darwin',
    'FreeBSD',
    'OpenBSD',
    'WIN32',
    'Windows',
    'Unix'
))) {
    define('HOSTS_FILE_PATH', '/etc/hosts');
} else {
    die('Unsupportedsystem!' . 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;
}


本文地址:http://www.phprm.com/develop/fs9044.html

转载随意,但请附上文章地址:-)

标签:google hosts php抓取

相关文章

发表留言