Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

25.10.2009, 16:43
|
|
Участник форума
Регистрация: 15.01.2009
Сообщений: 158
Провел на форуме: 469704
Репутация:
26
|
|
Помогите разобраться с кодом:
PHP код:
<?php
$handler=fopen('log.txt','a+');
$zapros = 'inurl:"/?p=1" inurl:"ru"';
$request = 'http://www.google.com/ie?q='.urlencode(trim($zapros)).'&num=100&hl=ru&lr=&start=1&sa=N';
$result = file_get_contents($request);
$regulyar='/((?:http:\/\/)[\-\,\.\,A-Za-z1-9]*(.?)[a-z]*[\=\,\?\,\/a-z1-9]*).*?/isU';
if (preg_match_all ($regulyar, $result, $matches))
{
for ($i=0; $i<count($matches[0]); $i++)
{
$httpurl1=$matches[1][$i];
$serp[] = $httpurl1;
}}
$log = implode('\n',$serp);
fwrite($handler,$log);
fclose($handler);
echo 'Данные были сохранены в log.txt';
?>
Понимаю, выглядит дико и ужасно, но один из первых опытов.
Получается две проблемы:
1.Результат записывается в одну строчку, на нуледе читал что нужно использовать U, но не помогает.
И вторая проблема, не могу никак справиться с изменением "start=$nomer" номера страницы при парсинге.
Помогите пожалуйста.
Здесь в теме похожий скрипт, но не могу никак приладить функцию.
|
|
|

25.10.2009, 16:51
|
|
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме: 148667
Репутация:
23
|
|
Сообщение от Komyak
Помогите разобраться с кодом:
PHP код:
<?php
$handler=fopen('log.txt','a+');
$zapros = 'inurl:"/?p=1" inurl:"ru"';
$request = 'http://www.google.com/ie?q='.urlencode(trim($zapros)).'&num=100&hl=ru&lr=&start=1&sa=N';
$result = file_get_contents($request);
$regulyar='/((?:http:\/\/)[\-\,\.\,A-Za-z1-9]*(.?)[a-z]*[\=\,\?\,\/a-z1-9]*).*?/isU';
if (preg_match_all ($regulyar, $result, $matches))
{
for ($i=0; $i<count($matches[0]); $i++)
{
$httpurl1=$matches[1][$i];
$serp[] = $httpurl1;
}}
$log = implode('\n',$serp);
fwrite($handler,$log);
fclose($handler);
echo 'Данные были сохранены в log.txt';
?>
Понимаю, выглядит дико и ужасно, но один из первых опытов.
Получается две проблемы:
1.Результат записывается в одну строчку, на нуледе читал что нужно использовать U, но не помогает.
И вторая проблема, не могу никак справиться с изменением "start=$nomer" номера страницы при парсинге.
Помогите пожалуйста.
Здесь в теме похожий скрипт, но не могу никак приладить функцию.
$httpurl1=$matches[1][$i];
Ошыбка в етой строке, тут переменная $httpurl1 постоянно перезаписиваеться. Надо сделать ее масивом типа так $httpurl1[], а если хочеш оставить ее строкой то надо использовать конкатенацию строк
$httpurl1 .= $matches[1][$i]; // точку добавить перед присвоением значения.
Че то я загнался, не посмотрел что ты в следуещей строке записиваеш в масив $serp[].
Короче не знаю...
Последний раз редактировалось Patronik; 25.10.2009 в 16:59..
|
|
|

25.10.2009, 16:57
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
$log = implode('\n',$serp);
только в двойных кавычках:
$log = implode("\n",$serp);
и не "\n", а "\r\n"
$log = implode("\r\n",$serp);
PS: Сам же дал ссылку на мой скрипт и так перековеркать всё
Да, в php есть разница между одинарными и двойными кавычками, и разница между ними выражается далеко не только в "мнимом" приросте скорости выполнения скрипта
Последний раз редактировалось Pashkela; 25.10.2009 в 17:02..
|
|
|

25.10.2009, 17:15
|
|
Участник форума
Регистрация: 15.01.2009
Сообщений: 158
Провел на форуме: 469704
Репутация:
26
|
|
Сообщение от Pashkela
Сам же дал ссылку на мой скрипт и так перековеркать всё
Учим'с =)) Я лучше понимаю реальные примеры, а не статьи из книжек. Поэтому когда не получилось запустить твой скрипт, попробовал переписать- но получилось как всегда...
В твоём скрипте на хосте выдаёт ошибку- не хватает третьего значения в функции parse_serp.
|
|
|

25.10.2009, 22:33
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 54
Провел на форуме: 62271
Репутация:
9
|
|
Php & Приложения
Каким образом через php можно узнать статистику чего либо,что находится не на веб узле,а,к примеру, на удалённом приложении-кс...Вот как сделать скрипт мониторинга? Только не надо выкладывать типа: там куча есть готового,зайди на cs-monitoring и т.п.... Самому охото сделать,просто подскажите какими командами это достигается? Желательно,не используя переменные --- я их не понимаю) Их ключи и т.п... И кроме мониторинга подскажите пожалуйста ещё: Какими средстави работют онлайн сканеры? Нигде их немогу скачать-то ссылки битые то вирус,исходника нет,принцип неизвестен..Киньте ссылку,или распишите,КаК сделать мини-сканер на пассивные XSS?
И ещё: как преобразовать текст в php? Например,сделать капчу? Пробовал-получал ошибки...
Я лучше понимаю реальные примеры, а не статьи из книжек.
---это про меня тоже 
Последний раз редактировалось N2kroot; 25.10.2009 в 22:35..
|
|
|

26.10.2009, 10:30
|
|
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
Провел на форуме: 1284900
Репутация:
399
|
|
Сообщение от N2kroot
Каким образом через php можно узнать статистику чего либо,что находится не на веб узле,а,к примеру, на удалённом приложении-кс...Вот как сделать скрипт мониторинга?
Сниффаем пакеты, потом используем пойманные пакеты для соединения с сервом.
Сообщение от N2kroot
Желательно,не используя переменные --- я их не понимаю)
Программировать без использования переменных это как есть суп вилкой. Можно попытаться, может даже что-то получится, но на этом всё и закончится.
Сообщение от N2kroot
И кроме мониторинга подскажите пожалуйста ещё: Какими средстави работют онлайн сканеры? Нигде их немогу скачать-то ссылки битые то вирус,исходника нет,принцип неизвестен..Киньте ссылку,или распишите,КаК сделать мини-сканер на пассивные XSS?
Никто вам не станет обьяснять то что написано в книгах. Для понимания этой темы нужны серьёзные теоретические и практические знания, которых у вас нет. Прочтите 3-8 хороших книжек по программированию + пару книжек по конкретным языкам, напишите парочку программ на разных языках и разной направленности и возвращайтесь с тем-же вопросом.
Сообщение от N2kroot
И ещё: как преобразовать текст в php? Например,сделать капчу? Пробовал-получал ошибки...
Капча получается путём добавления текста в изображение, никакого преобразования там нету.
|
|
|

26.10.2009, 20:24
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 54
Провел на форуме: 62271
Репутация:
9
|
|
*
Скрипт дайте на капчю пожалуйста)
|
|
|

26.10.2009, 20:26
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
http://www.captcha.ru/kcaptcha/
|
|
|

26.10.2009, 20:28
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 54
Провел на форуме: 62271
Репутация:
9
|
|
PHP код:
<?php
if(!function_exists('getmicrotime'))
{
function getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
}
function serverInfo($ip, $port)
{
$ip = gethostbyname($ip);
$timeStart = getmicrotime();
$fp = fsockopen('udp://'.$ip, $port);
stream_set_timeout($fp, 2);
if($fp)
{
fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r");
$temp = fread($fp, 4);
$status = socket_get_status($fp);
if($status['unread_bytes']>0)
{
$temp = fread($fp, $status['unread_bytes']);
$server['ping'] = (int)((getmicrotime() - $timeStart)*1000);
$array = array();
$pos = 0;
while($pos !== false)
{
$pos2 = strpos($temp, "\0", $pos+1);
$array[] = substr($temp, $pos+1, $pos2-$pos)."\n";
$pos = $pos2;
}
$server['status'] = 'on';
if( strpos($array[0], $ip) !== 0)
{
$server['players'] = ord($array[5][0]);
$server['maxplayers'] = ord($array[5][1]);
$server['name'] = trim(substr($array[0], 1));
$server['map'] = trim($array[1]);
$server['game'] = trim($array[2]);
}
else
{
$server['players'] = ord($array[5][0]);
$server['maxplayers'] = ord($array[5][1]);
$server['name'] = trim($array[1]);
$server['map'] = trim($array[2]);
$server['game'] = trim($array[3]);
}
$command = pack("V", -1) . 'W';
fwrite($fp, $command, strlen($command));
$temp = fread($fp, 1500);
$temp = substr($temp, 5);
$lo = (ord($temp[1]) << 8) | ord($temp[0]);
$hi = (ord($temp[3]) << 8) | ord($temp[2]);
$data = "\xFF\xFF\xFF\xFF\x55".pack("V", ($hi << 16) | $lo);
fwrite($fp, $data);
$temp = fread($fp, 5);
$status = socket_get_status($fp);
if($status['unread_bytes']>0)
{
$temp = fread($fp, $status['unread_bytes']);
$array = array();
$temp = substr($temp, 1);
for($i=1;$i<=$server['players'];$i++)
{
$temp = substr($temp, 1);
$pos = strpos($temp, "\0");
$name = substr($temp, 0, $pos);
$temp = substr($temp, $pos+1);
$lo = (ord($temp[1]) << 8) | ord($temp[0]);
$hi = (ord($temp[2]) << 8) | ord($temp[3]);
$temp = substr($temp, 4);
$kills = ($hi << 16) | $lo;
$f = @unpack("f1float", $temp);
$temp = substr($temp, 4);
$time = (int)$f['float'];
if(trim($name))
$server['stats'][] = array("name" => $name, "kills" => $kills,
"time" => gmdate("H:i:s", $time));
}
}
}
else
$server['status'] = 'off';
}
return $server;
}
print_r(serverInfo("cs.otstrel.ru", 27025));
?>
Вот скрипт снифает который кску,но я получаю массивные данные,а как мне их,к примеру,преобразовать в таблицу?
|
|
|

26.10.2009, 20:34
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
N2kroot
пропусти массив через цикл: foreach() || for() || while()
________
0ph.ru
Последний раз редактировалось L I G A; 10.12.2009 в 19:47..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|