ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 12.08.2007, 11:43
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


Question

Цитата:
Сообщение от groundhog  
Тебе же сказали - прасить...
Как чужую страницу парсить?
 
Ответить с цитированием

  #12  
Старый 12.08.2007, 11:58
*D1VER
Участник форума
Регистрация: 05.12.2006
Сообщений: 112
Провел на форуме:
685950

Репутация: 175
Отправить сообщение для *D1VER с помощью ICQ
По умолчанию

мож так?
$straniza=filegetcontents("http://site.ru/index.html");
echo"$straniza";
 
Ответить с цитированием

  #13  
Старый 12.08.2007, 12:12
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

*D1VER, у нормального прова отключён вызов filegetcontents с удалённой урлы... Так что на 99% это гиблое дело...

vovan x100, если у тебя нормальный хостер, есть PHP с сокетами, то алгоритм прост:
1) Посылаешь GET запрос через сокеты и получаешь содержимое страницы;
2) С помощью регулярных выражений (или иными функциями) ищёшь/вырезаешь интересующие тебя врагменты;
3) Найденные фрагменты выводишь/сохраняешь/обрабатываешь;

Для примера привожу функцию на PHP для получения страницы:

Цитата:
function getContentFromRemoteResource ($remoteUrl, &$pageContent) {
$urlData = parse_url($remoteUrl);

if (!isset($urlData["host"])) return false;
if (!isset($urlData["port"])) $urlData["port"] = 80;
if (!isset($urlData["path"])) $urlData["path"] = "/";

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) return false;

$result = socket_connect($socket, $urlData["host"], $urlData["port"]);
if (!$result) return false;

$resource = $urlData["path"];
if (isset($urlData["query"])) $resource .= "?{$urlData["query"]}";

$sendData = "GET {$resource} HTTP/1.1\r\n";
$sendData .= "Host: {$urlData["host"]}\r\n";
$sendData .= "User-Agent: Antichat Evil Fetcher\r\n";
$sendData .= "Accept: */*\r\n";
$sendData .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n";
$sendData .= "Pragma: no-cache";
$sendData .= "Connection: Close\r\n\r\n";

$ret = socket_write($socket, $sendData, strlen($sendData));
if (!$ret) return false;

$buffer = "";
while ($data = socket_read($socket, 1024)) {
$buffer .= $data;
}

socket_close($socket);

list($headers, $content) = preg_split("/\r\n\r\n/", $buffer, 2);
if (strlen($content) <= 0 || strlen($headers) <= 0) return false;

$httpCode = intval(substr($headers, 9, 3));
if ($httpCode != 200) return false;

$pageContent = $content;

return true;
}
Дальше содержимое из $pageContent парсишь с нужными тебе критериями для поиска необходимой информации.

Последний раз редактировалось groundhog; 12.08.2007 в 12:18..
 
Ответить с цитированием

  #14  
Старый 12.08.2007, 12:21
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

у сеюя на апаче такое не сотворишь?
 
Ответить с цитированием

  #15  
Старый 12.08.2007, 12:24
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

белая страница...
 
Ответить с цитированием

  #16  
Старый 12.08.2007, 12:26
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

Цитата:
Notice: Undefined variable: pageContent in s:\home\localhost\www\test.php on line 48
[ убрать подсказку | никогда больше не показывать ]

Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.

Вы можете установить более слабый контроль ошибок одним из следующих способов:

* Впишите в скрипты строчку:

Error_Reporting(E_ALL & ~E_NOTICE);

Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
* Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:

php_value error_reporting 7

* Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
во как матерится

А на серваке хостера:
Цитата:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, support@freehostia.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Apache/1.3.33 Server at ?????????.org.ua Port 80

Последний раз редактировалось vovan x100; 12.08.2007 в 12:44..
 
Ответить с цитированием

  #17  
Старый 12.08.2007, 12:53
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

У себя на апачах, это легко можно сотворить... Странно, проверил - всё работает... Вот код + пример вызова:
Цитата:
<?php

function getContentFromRemoteResource ($remoteUrl, &$pageContent) {
$urlData = parse_url($remoteUrl);

if (!isset($urlData["host"])) return false;
if (!isset($urlData["port"])) $urlData["port"] = 80;
if (!isset($urlData["path"])) $urlData["path"] = "/";

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) return false;

$result = socket_connect($socket, $urlData["host"], $urlData["port"]);
if (!$result) return false;

$resource = $urlData["path"];
if (isset($urlData["query"])) $resource .= "?{$urlData["query"]}";

$sendData = "GET {$resource} HTTP/1.1\r\n";
$sendData .= "Host: {$urlData["host"]}\r\n";
$sendData .= "User-Agent: Antichat Evil Fetcher\r\n";
$sendData .= "Accept: */*\r\n";
$sendData .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n";
$sendData .= "Pragma: no-cache";
$sendData .= "Connection: Close\r\n\r\n";

$ret = socket_write($socket, $sendData, strlen($sendData));
if (!$ret) return false;

$buffer = "";
while ($data = socket_read($socket, 1024)) {
$buffer .= $data;
}

socket_close($socket);

list($headers, $content) = preg_split("/\r\n\r\n/", $buffer, 2);
if (strlen($content) <= 0 || strlen($headers) <= 0) return false;

$httpCode = intval(substr($headers, 9, 3));
if ($httpCode != 200) return false;

$pageContent = $content;

return true;
}



if (!getContentFromRemoteResource("http://ya.ru", $yaRuContent))
die("Could not fetch content from remote host");

print("<pre>");
var_dump($yaRuContent);
print("</pre>");

?>
А Internal Server Error может быть вызван отсутствием поддержки сокет на стороне провайдера... В любом случае, откатай сначала локально скрипт и убедись, что он работает... Проверь, правильно ли сделал вызов...
 
Ответить с цитированием

  #18  
Старый 12.08.2007, 14:03
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

Сокеты закрыты...
Цитата:
Fatal error: Call to undefined function: socket_create() in /home/www/sport.inlanger.org.ua/test2.php on line 61
есть ещё выход, кроме как хостера менять?
 
Ответить с цитированием

  #19  
Старый 12.08.2007, 14:14
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

О-па... на другом хостинге заработало! А теперь тупой вопрос... Как парсить содержимое?
 
Ответить с цитированием

  #20  
Старый 12.08.2007, 14:15
NOmeR1
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме:
6023777

Репутация: 2642


Отправить сообщение для NOmeR1 с помощью ICQ
По умолчанию

Ты PHP знаешь?

Попробуй мою функцию.
PHP код:
<?
function parse($site,$ot,$do)
{
     
$fp file_get_contents($site);
     
preg_match_all('#'.$ot.'(.*?)'.$do.'#is'$fp$parsePREG_SET_ORDER);
     foreach(
$parse as $out) {
          echo 
$out[1];
     }
}
parse('сайт.ру','<ОТ>','</ДО>'); // 'сайт','от какого тега','до кокого тега'
?>
P.S. Не проверял.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Немного о криптографии. \/\/hite Статьи 2 17.01.2010 20:08
FAQ по выделенным серверам †Romi4† Авторские статьи 4 31.08.2009 16:19
Дневник хакера или как Разогнать Целерон V.I.P Болталка 1 29.05.2007 16:22
Безопасность по заказу. Кредитные карточки в интернете dinar_007 Мировые новости 0 14.08.2006 19:51



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ