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

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

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

  #10381  
Старый 07.05.2009, 00:08
Extremal
Познающий
Регистрация: 21.06.2006
Сообщений: 74
Провел на форуме:
2441743

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

Цитата:
Сообщение от _SEREGA_  
люди хелп,не врубаюсь.
вот код:
PHP код:
<?php    function my()  {          STATIC     $i=0;      $i++;      print $i;      print "<br>";  }  my();  my();  my();  my();  ?>
выводится 1 2 3 4
а должно по провилам 1 1 1 1
ведь когда вызывается функция там обнуляется $i
STATIC $i=0;
?
PHP код:
<?php 
function my()
{
    
$i=0;
    
$i++;
    print 
$i;
    print 
"<br>";  
}  
my();  
my();  
my();  
my();  
?>
STATIC там ненужен
 
Ответить с цитированием

  #10382  
Старый 07.05.2009, 00:31
OnArs
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме:
448388

Репутация: 31
По умолчанию

Здравствуйте!


Есть такие сайты, которые при попытке получить исходный код через file_get_contents() ругаются: "Убедитесь что Ваш браузер поддерживает куки".

Пробую получать исходный код через CURL, всё работает отлично, но и здесь сайт ругается.

Вот как Я получаю исходник страницы:
PHP код:
    $url 'http://google.co.uk/';

    
$ch curl_init(); // initialize curl handle
    
curl_setopt($chCURLOPT_URL$url); 
    
curl_setopt($chCURLOPT_FAILONERROR1); 
    
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
    
curl_setopt($chCURLOPT_TIMEOUT15);     

    
$document curl_exec($ch);
    echo 
$document
Google вставлен лишь для примера.

Подскажите пожалуйста, как маскироваться под браузер с куками?

Заранее благодарен!

Последний раз редактировалось OnArs; 07.05.2009 в 00:36..
 
Ответить с цитированием

  #10383  
Старый 07.05.2009, 05:44
Shadow_p1raT
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме:
2140897

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

писец
вот тебе самописная функция для получения страницы через file_get_contents с браузером и куками и прокси =)
PHP код:
function sock_do($action,$method,$header false,$params false,$proxy false,$cookie false,$referer false

   
$out    = array('http' => array()); 
   
$method strtoupper($method); 
   if(
$method == 'GET') { 
      
$action .= '?'.$params
      
$out['http']['method'] = 'GET'
       
   } elseif(
$method == 'POST') { 
      
$out['http']['method']  = 'POST'
      
$out['http']['header']  = "Content-type: application/x-www-form-urlencoded\r\n"
                                
"Content-length: ".strlen($params)."\r\n"
      
$out['http']['content'] = $params;                         
   } else { 
       
      die(
'Йа криветко'); 
   } 
   if(
$proxy) { 
      
$out['http']['proxy'] = 'tcp://'.$proxy
   } 
   if(
$cookie) { 
      
$out['http']['header'] .= 'Cookie: '.$cookie."\r\n"
   } 
   if(
$referer) { 
      
$out['http']['header'] .= 'Referer: '.$referer."\r\n"
   } 
   
$out['http']['header'] .= "Connection: close\r\n"
    
   
$content stream_context_create($out); 
   
$result = @file_get_contents($action,false,$content); 
   
$res = array(); 
   
$res = array($result); 
   if(
$header) { 
      
$res[] = implode("\r\n",$http_response_header); 
   } 
   return 
$res//Возвращаем ответ + заголовки                     

# [пример использования] 
$send sock_do('http://microsoft.com/private/index.php','GET',1,'login=bill&password=antichat');# аналагично с POST 
print_R($send);# В первом кдюче ответ сервера во втором заголовки 
в свой код добавь строчки
PHP код:
curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1');// "Браузер"
curl_setopt($ch,CURLOPT_COOKIE,Йа ацкое криветко);//тут твои куки 
 
Ответить с цитированием

  #10384  
Старый 07.05.2009, 10:19
OnArs
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме:
448388

Репутация: 31
По умолчанию

Спасибо огромное, но тем не менее код страницы Я таки получить не смог, вот эта страница:
Цитата:
http://blogs.telegraph.co.uk/
Пользуюсь твоей функцией вот так:
PHP код:
    $url 'http://blogs.telegraph.co.uk/';

    
$send sock_do($url,'GET',1,'');# аналагично с POST 
    
print_r($send);# В первом кдюче ответ сервера во втором заголовки  
    
// Выдёргиваем куки
    
preg_match_all("/Set-Cookie:(.*); expires=/",$send[1],$out);
    
print_r($out);
    
$cookie $out[1][0].'; '.$out[1][1].'; '.$out[1][2].';';
    echo 
"<b>$cookie</b>";

    
$ch curl_init(); // initialize curl handle
    
curl_setopt($chCURLOPT_URL$url); // set url to post to
    
curl_setopt($chCURLOPT_FAILONERROR1); // Fail on errors
    
curl_setopt($chCURLOPT_RETURNTRANSFER,1); // return into a variable
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
    
curl_setopt($chCURLOPT_USERAGENT,'Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1');// "Браузер"
    
curl_setopt($chCURLOPT_COOKIE,$cookie);//тут твои куки 
    
curl_setopt($chCURLOPT_TIMEOUT15); // times out after 15s
 

    
$document curl_exec($ch);
    echo 
$document
 
Ответить с цитированием

  #10385  
Старый 07.05.2009, 14:48
Shadow_p1raT
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме:
2140897

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

Не люблю такие сайты,ща нет времени писать код,просто глянул,там наверное ещё надо будет пройти Location несколько раз.
 
Ответить с цитированием

  #10386  
Старый 07.05.2009, 14:51
art2222
Участник форума
Регистрация: 28.04.2008
Сообщений: 172
Провел на форуме:
1191083

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

Цитата:
Не люблю такие сайты,ща нет времени писать код,просто глянул,там наверное ещё надо будет пройти Location несколько раз.
Он выставил curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
Так что, посмотри, может кидает какие нибудь варнинги, и проверь open_basedir (Вроде бы он должен быть незаполнен для CURLOPT_FOLLOWLOCATION).
 
Ответить с цитированием

  #10387  
Старый 07.05.2009, 17:04
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

В данном случае лучше не разбирать печеньки самому, а воспользоваться функциями курла.
PHP код:
    function post($url='',$content='',$referer='')
    {
        
$ch curl_init();  
        
curl_setopt($chCURLOPT_URL,$url);
        
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
        
curl_setopt($chCURLOPT_TIMEOUT15);

        
curl_setopt($chCURLOPT_COOKIEFILE"cookiefile");
        
curl_setopt($chCURLOPT_COOKIEJAR"cookiefile");
        
        
curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');

        if (!empty(
$content)) {curl_setopt($chCURLOPT_POST1);curl_setopt($chCURLOPT_POSTFIELDS$content);} else {curl_setopt($chCURLOPT_POST0);}
        if (!empty(
$referer)) curl_setopt($chCURLOPT_REFERER$referer);
        
$ss=curl_exec($ch);
        
curl_close($ch);
        
        return 
$ss;
    } 
    echo 
post('http://blogs.telegraph.co.uk/'); 
Или же, следить на какой именно домен вас перекидывает и собирать куки только для blogs.telegraph.co.uk. Защита такая немудреная, вначале редиректит на onesite.com потом обратно, и если есть куки от onesite.com - выдает ошибку

Последний раз редактировалось Gifts; 07.05.2009 в 17:16..
 
Ответить с цитированием

  #10388  
Старый 07.05.2009, 20:05
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

Цитата:
Сообщение от bombeg  
ip.php
PHP код:
<?php
$log     
'log.dat';
$time     time();

$ips     file($log);
$print     $time = array();
foreach(
$ips as $ip
{
    list(
$_ip$_time) = explode(':'trim($ip));
    
$print[$_ip] = $_ip;
    
$time[$_ip]  = $_time;
}
$max_time time() - 300;
$print array_reverse($print);
foreach(
$print as $ip)
{
    if(
$time[$ip] > $max_time) echo $ip' посетил страницу в 'date('h:i:s'$time[$ip]), "\n";
}
?>
Помогите плиз разобраться с кодом, сам к сожалению не могу.
В файле log.dat содержится данные IP:дата
Даный код получает инфу из файла и выводит на экран айпишники + последнюю дату. При этом отсеивает похожие айпи адреса (чтобы одинаковых не выводилось) и выводит только те которые были активны за последние 5 минут (сверяет по дате)

Пример файла log.dat :
127.0.0.1:1234567890
127.0.0.2:1234567890
127.0.0.3:1234567890
127.0.0.4:1234567890
127.0.0.1:1234567890


Теперь-же в файле log.dat добавилось 2 новых параметра, и инфа выглядит так:
127.0.0.1:1234567890:randominfa1:randominfa2
127.0.0.2:1234567890:randominfa1:randominfa2
32.60.32.60:1234567890:randominfa1:randominfa2
127.0.0.4:1234567890:randominfa1:randominfa2
32.60.32.60:1234567890:randominfa1:randominfa2

В данном коде надо подправить вывод 3 и 4 параметров на экран, чтобы они выводились вместе с айпишниками.
Но к сожалению мне не понятно где в этом коде первый параметр, а где второй.

я банально сделал вот такую подправку:
Код:
list($_ip, $_time, $_cid, $_nat) = explode(':::', trim($ip)); 
    $print[$_ip] = $_ip; 
	$print[$_cid] = $_cid;
	$print[$_nat] = $_nat;
    $time[$_ip]  = $_time;
Дальше юзал:
echo $ip.$_nat, ' посетил страницу в ', date('h:i:s', $time[$ip]), "\n";
И это даже на первый взгляд заработало, но как оказалось последние 2 параметра в этом случае он абсолютно рандомно выводит, а надо чтобы выводил параметры пренадлежащие этой лини (ip адресу).

В общем кто сможет, помогите разобраться...
 
Ответить с цитированием

  #10389  
Старый 07.05.2009, 20:32
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

_SEREGA_ Буква "a" - написана на разных языках
 
Ответить с цитированием

  #10390  
Старый 07.05.2009, 20:36
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


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

Цитата:
Сообщение от Gifts  
_SEREGA_ Буква "a" - написана на разных языках
я сам 10 минут щас сидел втыкал Оо
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



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


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




ANTICHAT.XYZ