ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

07.05.2009, 00:08
|
|
Познающий
Регистрация: 21.06.2006
Сообщений: 74
Провел на форуме: 2441743
Репутация:
222
|
|
Сообщение от _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 там ненужен 
|
|
|

07.05.2009, 00:31
|
|
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме: 448388
Репутация:
31
|
|
Здравствуйте!
Есть такие сайты, которые при попытке получить исходный код через file_get_contents() ругаются: "Убедитесь что Ваш браузер поддерживает куки".
Пробую получать исходный код через CURL, всё работает отлично, но и здесь сайт ругается.
Вот как Я получаю исходник страницы:
PHP код:
$url = 'http://google.co.uk/';
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$document = curl_exec($ch);
echo $document;
Google вставлен лишь для примера.
Подскажите пожалуйста, как маскироваться под браузер с куками?
Заранее благодарен! 
Последний раз редактировалось OnArs; 07.05.2009 в 00:36..
|
|
|

07.05.2009, 05:44
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме: 2140897
Репутация:
267
|
|
писец
вот тебе самописная функция для получения страницы через 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,Йа ацкое криветко);//тут твои куки
|
|
|

07.05.2009, 10:19
|
|
Участник форума
Регистрация: 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($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT,'Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1');// "Браузер"
curl_setopt($ch, CURLOPT_COOKIE,$cookie);//тут твои куки
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s
$document = curl_exec($ch);
echo $document;
|
|
|

07.05.2009, 14:48
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме: 2140897
Репутация:
267
|
|
Не люблю такие сайты,ща нет времени писать код,просто глянул,там наверное ещё надо будет пройти Location несколько раз.
|
|
|

07.05.2009, 14:51
|
|
Участник форума
Регистрация: 28.04.2008
Сообщений: 172
Провел на форуме: 1191083
Репутация:
270
|
|
Не люблю такие сайты,ща нет времени писать код,просто глянул,там наверное ещё надо будет пройти Location несколько раз.
Он выставил curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
Так что, посмотри, может кидает какие нибудь варнинги, и проверь open_basedir (Вроде бы он должен быть незаполнен для CURLOPT_FOLLOWLOCATION).
|
|
|

07.05.2009, 17:04
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
В данном случае лучше не разбирать печеньки самому, а воспользоваться функциями курла.
PHP код:
function post($url='',$content='',$referer='')
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
if (!empty($content)) {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $content);} else {curl_setopt($ch, CURLOPT_POST, 0);}
if (!empty($referer)) curl_setopt($ch, CURLOPT_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..
|
|
|

07.05.2009, 20:05
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от 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 адресу).
В общем кто сможет, помогите разобраться...
|
|
|

07.05.2009, 20:32
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
_SEREGA_ Буква "a" - написана на разных языках
|
|
|

07.05.2009, 20:36
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Сообщение от Gifts
_SEREGA_ Буква "a" - написана на разных языках
я сам 10 минут щас сидел втыкал Оо
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|