|
// * версия скрипта 3.1 * //
error_reporting(0);
$host = $_SERVER['HTTP_HOST'];
// убираем www у всех доменов, если оно есть.
// таким образом, ссылки будут показываться с www и без него
if(substr($host, 0, 4) == "www.") $host = substr($host, 4, strlen($host)-4);
$host = "http://".$host."/";
$intervalZaprosa = "1440"; // через сколько обновлять ссылки (в минутах)
// прочитаем из файла время последнего запроса ссылок
$timelastquery = 0;
if(file_exists($_SERVER['DOCUMENT_ROOT']."/MYLINKER8064104315/timelastquery.txt")==true)
{
$fq = fopen($_SERVER['DOCUMENT_ROOT']."/MYLINKER8064104315/timelastquery.txt", "rt");
if($fq != false)
{
$timelastquery = fgets($fq, 1000);
fclose($fq);
}
}
if(time()-$timelastquery > $intervalZaprosa * 60)
{
// превысили интервал запроса ссылок - запрашиваем ссылки с сервера
$text = ""; // сюда запишем данные, полученные от сервера
// пробуем подключиться через сокет
$sock = @fsockopen("kendzi.net.ru", 80, $errno, $errstr, 5);
if($sock)
{
@fputs($sock, "GET /getlinks.php?secret=TN18U0PA6T0X7T15A&url=".$host." HTTP/1.0\r\nHost: kendzi.net.ru\r\n");
@fputs($sock, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru;\r\n\r\n");
while (!feof($sock))
{
$text .= @fgets($sock, 10000);
}
@fclose($sock);
}
else
{
// через сокет не вышло, пробуем fopen
$f = @fopen("http://kendzi.net.ru/getlinks.php?secret=TN18U0PA6T0X7T15A&url=".$host, "rt");
if($f)
{
while (!feof($f))
{
$text .= @fgets($f, 10000);
}
@fclose($f);
}
else
{
// через fopen не вышло, пробуем curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://kendzi.net.ru/getlinks.php?secret=TN18U0PA6T0X7T15A&url=".$host);
curl_setopt($ch, CURLOPT_HEADER, true); //true означает, что ответ на запрос возвратится как значение функции curl_exec($ch);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (Windows; U; Windows NT 5.1; ru;');
$data = curl_exec($ch);
if(curl_getinfo($ch,CURLINFO_HTTP_CODE) == "200")
{
$text = $data;
curl_close($ch);
}
}
}
// проверим наличие спец-строки в полученных данных (верификация)
if(strstr($text, "Q9T0G4A5U0J4A6E0RG1A0DG") != false)
{
// записываем все ссылки в файл
$f1 = fopen($_SERVER['DOCUMENT_ROOT']."/MYLINKER8064104315/linksDB.txt", "wt");
if($f1 != false)
{
fputs($f1, $text);
fclose($f1);
}
chmod($_SERVER['DOCUMENT_ROOT']."/MYLINKER8064104315/linksDB.txt", 0666);
}
// вне зависимости от результатов запроса записываем в файл временную метку последнего запроса
$fq = fopen($_SERVER['DOCUMENT_ROOT']."/MYLINKER8064104315/timelastquery.txt", "wt");
if($fq != false)
{
fputs($fq, time());
fclose($fq);
}
chmod($_SERVER['DOCUMENT_ROOT']."/MYLINKER8064104315/timelastquery.txt", 0666);
}
// функция читает ссылки из файла и выводит их
// параметр separator - разделитель ссылок, если их несколько
function setlink($separator)
{
$ssilki = "";
$f = file($_SERVER['DOCUMENT_ROOT']."/MYLINKER8064104315/linksDB.txt");
if($f != false)
{
for($i=0; $i 1)
{
if( trim($expstr[0]) == $_SERVER['REQUEST_URI'] ) $ssilki .= trim($expstr[1]).$separator;
}
}
$ssilki = substr($ssilki, 0, strlen($ssilki)-strlen($separator)); // убираем последний разделитель
}
return $ssilki;
}
// если страницу запрашивает бот LinkWizard, выводим комментарий, для того, чтобы знать, что с страницей всё в порядке.
if( getenv('HTTP_USER_AGENT') == "LinkWizard Bot+ (Kendzi; 24122009; ru;)" ) echo "";
?> | |