Как определить версию php без доступа к сайту

Введение

Как определить версию php без доступа к сайту В этой небольшой статье я хочу показать как определить версию php без доступа к сайту, то есть не ни каких прав на создание и редактирование скриптов на хостинге или сервере.

Для того, чтобы узнать версию php нам достаточно знать только адрес сайте. Все дело в том, что сервер самостоятельно формирует заголовки страниц и если владелец сайта умышлено не отключает данную опцию, то мы сможем без труда получить информацию о версии php из заголовков. Вот, например, такую информацию можно получить из заголовков, которые формируются сервером, на котором находится этот блог:

  array(14) {
    [0]=>
    string(15) "HTTP/1.1 200 OK"
    [1]=>
    string(13) "Server: nginx"
    [2]=>
    string(35) "Date: Sat, 05 Apr 2014 18:15:21 GMT"
    [3]=>
    string(38) "Content-Type: text/html; charset=UTF-8"
    [4]=>
    string(17) "Connection: close"
    [5]=>
    string(21) "Vary: Accept-Encoding"
    [6]=>
    string(24) "X-Powered-By: PHP/5.3.18"
    [7]=>
    string(38) "Expires: Thu, 19 Nov 1981 08:52:00 GMT"
    [8]=>
    string(77) "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
    [9]=>
    string(16) "Pragma: no-cache"
    [10]=>
    string(40) "X-Pingback: http://vk-book.ru/xmlrpc.php"
    [11]=>
    string(47) "Link: <http://vk-book.ru/?p=691>; rel=shortlink"
    [12]=>
    string(62) "Set-Cookie: PHPSESSID=04298353f84df404bfbc5e0fa7b32929; path=/"
    [13]=>
    string(21) "Content-Length: 17293"
  }

Смысл решения понятен, остается его только реализовать: получаем заголовки и вытаскиваем из полученного массива информацию «X-Powered-By»

Код. Как определить версию php без доступа к сайту

Для удобства решение оформлено в функцию:

/**
* Определяем на чем работает сайт
*
* @var $url - string URL сайта
*
* @return - string результат проверки
*/
function getPoweredBy($url){
	$tmp = parse_url($url);
	$stream = @fopen($url, 'rb'); // открываем сайт
	if(!$stream){
		return "Сайт не отвечает!";
	}
	$array = stream_get_meta_data($stream); // получаем заголовки
	$info = false;
	// находим информацию о X-Powered-By
	foreach($array["wrapper_data"] as $k=>$v){
		if(strpos($v, 'X-Powered-By:') !== false){
			$info = explode('X-Powered-By:', $v);
		}
	}
	// вернем результат
	if($info){
		$powered_by = trim($info[1]);
		return $powered_by;
	}else{
		return "Не известно!";
	}
}

И пример использования этой функции:

// пример использования
$url = 'http://vk-book.ru';
$result = getPoweredBy($url);
print_r ($result);
Рассказать друзьям:


Как определить версию php без доступа к сайту: 4 комментария

  1. Не работает код
    Выдает ошибку Parse error: syntax error, unexpected ‘=’, expecting ‘)’ in /home/anleclub/anle/anlemag.ru/11.php on line 18

    Подскажите как исправить.
    PHP на сайте 5,3,27

    Сам код 11.php

    /**
    * Определяем на чем работает сайт
    *
    * @var $url — string URL сайта
    *
    * @return — string результат проверки
    */
    <?php
    function getPoweredBy($url){
    $tmp = parse_url($url);
    $stream = @fopen($url, 'rb'); // открываем сайт
    if(!$stream){
    return "Сайт не отвечает!";
    }
    $array = stream_get_meta_data($stream); // получаем заголовки
    $info = false;
    // находим информацию о X-Powered-By
    foreach($array["wrapper_data"] as $k=>$v){
    if(strpos($v, 'X-Powered-By:') !== false){
    $info = explode('X-Powered-By:', $v);
    }
    }
    // вернем результат
    if($info){
    $powered_by = trim($info[1]);
    return $powered_by;
    }else{
    return "Не известно!";
    }
    }
    // пример использования
    $url = 'http://http://anlemag.ru&#039;;
    $result = getPoweredBy($url);
    print_r ($result);

    // пример использования
    $url = 'http://themeforest.net/item/kids-store-responsive-prestashop-centrikids/full_screen_preview/6909610&#039;;
    $result = getPoweredBy($url);
    print_r ($result);

    ?

    1. Делается все куда проще. Есть специальная функция в php, извлекающая заголовки!
      Гуглите, яндексите…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*