Полезные скрипты

Discussion in 'PHP' started by SMiX, 2 Nov 2006.

  1. Todin

    Todin Member

    Joined:
    28 Jan 2011
    Messages:
    55
    Likes Received:
    7
    Reputations:
    0
    Функция изменяет DateStamp в exe/dll
    PHP:
    function PE_datestamp_Rewrite ($filein$fileout)
    {
        
    $new_datestamp time();
        
    $file file_get_contents($filein);
        
    $new_head substr($file0x3c4);
        
    $new_head unpack('V'$new_head);
        
    $new_head $new_head[1] + 0x08;
        
    $outdata  substr($file0$new_head);
        
    $outdata .= pack('V'$new_datestamp);
        
    $outdata .= substr($file$new_head+4);
        
    file_put_contents($fileout$outdata);
    }
     
  2. daniel777

    daniel777 Member

    Joined:
    8 Jul 2010
    Messages:
    536
    Likes Received:
    90
    Reputations:
    37
    На ачате полюбому должны быть те, кто в этом году поступает в ВУЗ в Украине, а значит смотрит себя в списках на сайте http://vstup.info
    Писал скриптик другу, может и вам понадобится.
    Скрипт высчитывает количество подавших документы, и соответственно вероятность попадания туда. Еще умеет искать человека.
    Бесполезный, но тем не менее другу помог.
    Посмотреть тут: http://kambala.16mb.com
    Исходник(быдлокод) тут: http://pastebin.mozilla-russia.org/110250
     
  3. mix0x0

    mix0x0 Active Member

    Joined:
    1 Nov 2010
    Messages:
    379
    Likes Received:
    188
    Reputations:
    92
    CloudFlare IP Resolver

    Простенький скрипт для определения ip-адреса сайта.

    PHP:
        <?php

        
    # CloudFlare IP Resolver

        # Coded By Phizo
        # http://hackforums.net/member.php?action=profile&uid=42381

        
    function is_ipv4($ip)
        {
        return 
    filter_var($ipFILTER_VALIDATE_IPFILTER_FLAG_IPV4) ? $ip '(Null)';
        }

        
    $me $argv[0];
        
    $url = @$argv[1];

        if(!isset(
    $url))
        die(
    "\n[+] Usage: php {$me} <url>\n[+] Example: php {$me} http://www.imgur.com\n");

        if(!
    preg_match('/^(https?):\/\/(w{3}|w3)\./i'$url))
        die(
    "\nURL is invalid.\nURL must be formatted as: http(s)://www." preg_replace('/^(https?):\/\//'''$url) . "\n(for compatibility reasons)\n");

        
    $headers get_headers($url1);
        
    $server $headers['Server'];

        
    $subs = array('cpanel.''ftp.''mail.''webmail.''direct.''direct-connect.''record.''ssl.''dns.''help.''blog.''forum.');
        
    $count count($subs);

        if(
    preg_match('/^(https?):\/\/(w{3}|w3)\./i'$url$matches))
        {
        if(
    $matches[2] != 'www')
        {
        
    $url preg_replace('/^(https?):\/\//'''$url);
        }
        else
        {
        
    $url explode($matches[0], $url);
        
    $url $url[1];
        }
        }

        if(
    is_array($server))
        
    $server $server[0];

        if(
    preg_match('/cloudflare/i'$server))
        echo 
    "\n[+] CloudFlare detected: {$server}\n";
        else
        echo 
    "\n[+] CloudFlare wasn't detected, proceeding anyway.\n";

        echo 
    '[+] IP: ' is_ipv4(gethostbyname($url)) . "\n\n";
        echo 
    "[+] Searching for more IP addresses.\n\n";

        for(
    $x 0$x $count$x++)
        {
        
    $site $subs[$x] . $url;
        
    $ip is_ipv4(gethostbyname($site));

        echo 
    "Trying {$site}{$ip}\n";
        }

        echo 
    "\n[+] Finished.\n";

        
    ?>
     
  4. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,904
    Likes Received:
    734
    Reputations:
    198
    Зачем все так сложно

    PHP:
    <?php
    $ip 
    gethostbyname('www.example.com');

    echo 
    $ip;
    ?>
     
    _________________________
    IGL, Dench and VY_CMa like this.
  5. love-in-hell

    love-in-hell New Member

    Joined:
    16 Sep 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Ребят, есть у кого скриптик проверки на плагиат по яше и гуглю?
    Поделитесь, если не жалко... а то advega просниффил, - он подозрительные пакеты шлёт, что-то пропало к нему доверие...

    100% у кого-то есть, так не хочется велосипедить...
    Или давайте напополам с кем-нибудь напишем на php?
     
  6. Feetz

    Feetz New Member

    Joined:
    19 Jul 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    ищу пример скрипта на js для копирования нужного мне текста в clipboard, в основном нужно под винду. Желательна работа в хроме последнем, фф последнем, ие8.
     
  7. DOBRO

    DOBRO New Member

    Joined:
    24 May 2010
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Нашел много полезных скриптов здесь - http://nulledit.ru/index.php
     
  8. scanislav

    scanislav Elder - Старейшина

    Joined:
    25 Jun 2010
    Messages:
    88
    Likes Received:
    22
    Reputations:
    31
    ICQ Bot

    Не знаю, тот ли раздел, но вот кто-то пытался залить мне на сервак :D

    https://gist.github.com/4023169
     
    avin likes this.
  9. Sat-hacker

    Sat-hacker New Member

    Joined:
    19 May 2012
    Messages:
    116
    Likes Received:
    0
    Reputations:
    -10
    Есть у кого-то что то подобное?
    http://forum.antichat.ru/showpost.php?p=1151651&postcount=635
    Ссылка сдохла.
     
  10. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    167
    Reputations:
    99
    Блокировка ip по маске подсетей и useragent

    Скрипт для блокирования ip адресов, подсетей:
    PHP:
    <?php
    if($_SERVER['HTTP_X_FORWARDED_FOR']!=''){ 
    $ip $_SERVER['HTTP_X_FORWARDED_FOR']; 
    }else{ 
    $ip $_SERVER['REMOTE_ADDR']; 

    if(
    preg_match("/95.78.|178.63.68.|88.198.49./",$ip)){die('Вас забанили');} 
    ?>
    Скрипт для блокировки по Useragent строке:

    PHP:
    <?php
    $u 
    $_SERVER['HTTP_USER_AGENT'];
    if( 
    $u == "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)" )  {
    echo 
    "Вас забанили";
    exit();
    }
    ?>
     
    #1150 GAiN, 28 May 2013
    Last edited: 28 May 2013
  11. scanislav

    scanislav Elder - Старейшина

    Joined:
    25 Jun 2010
    Messages:
    88
    Likes Received:
    22
    Reputations:
    31
    Определение AS и под-сети по IP

    Скрипт для определения AS-ки и сетки, которой принадлежит ИП. Полезно, чтоб определять поисковых ботов, заходы с проксей итд. Юзает сервис от Team Cymru

    PHP:
    function getIpInfo($ip) {
      
    $ip explode('.'$ip);
      
    $cymru=$ip[3].'.'.$ip[2].'.'.$ip[1].'.'.$ip[0].
           
    '.origin.asn.cymru.com';
      
    $origin=dns_get_record($cymruDNS_TXT);
      
    $asn 0;
      
    $subnet=$ip.'/32';
      if (
    $origin!==FALSE)  {
        if (isset(
    $origin[0]) && isset($origin[0]['txt'])) {
          
    $txt $origin[0]['txt'];
          
    $txt explode('|'$txt);
          
    $asn = (int)$txt[0];
          
    $subnet $txt[1];
        } 
      }
      return array(
    'asn' => $asn'subnet'=>$subnet);
    }

     
  12. 1profit

    1profit New Member

    Joined:
    29 Jun 2013
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    подскажите актуальный скрипт для отлова ботов на сайте :(
    Либо кто разбирается подскажите алгоритм создания таких скриптов
     
  13. scanislav

    scanislav Elder - Старейшина

    Joined:
    25 Jun 2010
    Messages:
    88
    Likes Received:
    22
    Reputations:
    31
    Тема большая, боты бывают разные.

    Чтоб оценить масштаб, советую взглянуть на сорцы в странице регистрации на гугло-групах. Это детективный роман почти. И это только что видно на клиенте. На сервере разумеется тоже дофига проверок.

    Можно обойтись меньшей кровью, если знать повадки интересующих ботов - заголовки иногда не совсем такие или скрипты не вполне корректно исполняются. Хотелось бы конкретики, конечно. универсального оружия нет.
     
  14. Юго

    Юго Elder - Старейшина

    Joined:
    2 Feb 2011
    Messages:
    71
    Likes Received:
    77
    Reputations:
    17
    Скрипт для чека мыл на валидность:

    PHP:
    // Открываем сокет
    $fp fsockopen('pop.mail.ru'110$errNo$errStr10);
    print 
    fgets($fp,1024).'Connect good!<br />';

    // Посылаем Логин:
    fputs($fp,'USER [LOGIN_NAME]'.CRLF);
    print 
    fgets($fp,1024).' :Login GOOD!<br />';

    // Посылаем Пароль:
    fputs($fp,'PASS [PASSWORD]'.CRLF);
    print 
    fgets($fp,1024).'password GOOD!<br />';


    // Запрашиваем письмо № 26
    fputs($fp,'RETR 26'.CRLF);
    $text.=getData($fp);

    Там где в квадратных скобках [] подстовляем логин и дальше пасс.
    Вам остается только создать цикл по перебору логов из файла и подключить цикл по работе с прокси, получится отличная вещь!
     
    2 people like this.
  15. extjs

    extjs Member

    Joined:
    23 Jun 2013
    Messages:
    31
    Likes Received:
    6
    Reputations:
    0
    устарел с ipv6 не будет робить
     
  16. SsSsSr

    SsSsSr New Member

    Joined:
    11 Oct 2012
    Messages:
    65
    Likes Received:
    2
    Reputations:
    1
    скрипт полного архивирования и копирования сайта WP и базы данных исходя из config.php не встречался никому?
     
    VulturRe likes this.
  17. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,444
    Likes Received:
    762
    Reputations:
    834
    Столкнулся с такой проблемой, что нужен был сканер файлов, папок и под папок на пхп из текущей директории, пришлось чуток повозиться, в итоге выдернул с одного сканера шеллов и чуток подправил, может кому пригодится:
    PHP:
    @ini_set('display_errors''0');
    $dir=getcwd();

    function 
    scan_directory_recursively($directory$filter=FALSE)
    {
        
        if(
    substr($directory,-1) == '/')    {
            
    $directory substr($directory,0,-1);
        }

        if(!
    file_exists($directory) || !is_dir($directory))    {
            return 
    FALSE;
        }elseif(
    is_readable($directory))    {
            
    $directory_list opendir($directory);
            while (
    FALSE !== ($file readdir($directory_list))){
                if(
    $file != '.' && $file != '..'){
                    
    $path $directory.'/'.$file;
                    echo 
    $path."<br>";
                                    
                    if(
    is_dir($path)){
                     
                            
    $directory_tree[] = array(
                                
    'path'    => $path,
                                
    'kind'    => 'directory',

                                
    'content' => scan_directory_recursively($path$filter));

                        }
                    
    }
            }
            
    closedir($directory_list); 
            return 
    TRUE;
        }else{
            return 
    FALSE;    
        }
    }
    scan_directory_recursively($dir);
     
    _________________________
  18. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,904
    Likes Received:
    734
    Reputations:
    198
    на рдоте в полезных мелочах есть в одну строку данный сканер для использования в GET
     
    _________________________
  19. CE/l/lEP

    CE/l/lEP New Member

    Joined:
    13 Dec 2011
    Messages:
    35
    Likes Received:
    3
    Reputations:
    0
    хоть бы смотрели что и откуда копируете.

    getData функция из ниоткуда берется?
    CRLF эта константа тоже из воздуха взялась?

    Что еще за цикл по работе с прокси? Вы хоть представляете как происходит коннект socks->smtp/pop?

    эххх, нет слов, одни эмоции.
     
  20. Anwy

    Anwy Elder - Старейшина

    Joined:
    16 Dec 2004
    Messages:
    303
    Likes Received:
    221
    Reputations:
    45
    Немного php скриптов , которые будут вам полезны

    Веб прокси
    PHP:
    echo file_get_contents($_GET['q']);
    $content=file_get_contents("http://урл.сайта/имя.скрипта?=".$url); //Использование
    Можно конечно использовать прокси - но это гораздо сложнее (надо парсить списки, собирать курл запрос и т.д.). А так просто размещаете на своих хостингах с разными IP файлик proxy.php, и потом скриптом случайно выбираете адрес и парсите с него. Только проверьте предварительно (некоторые хостеры закрывают доступ). Я такой начал использовать для твиттера (у него ограничение 150 запросов в час).

    Alexa Rank
    PHP:
    function alexa($url) {

    preg_match('#<div class="data .+?">(.*?)</div>#si'file_get_contents("http://www.alexa.com/siteinfo/{$url}"), $a); 

    return 
    trim(str_replace(",","",strip_tags($a[1])));}
    Вводим адрес сайта (без http://) - получаем его Alexa Rank. Алекса может обидится (раньше всячески препятствовал парсинга), так что аккуратнее.

    Яндекс: тИЦ
    PHP:
    function cy($url){ 

    preg_match("/value=\"(.\d*)\"/"join(""file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$url.'/')), $tic); 

    return(
    $tic[1]!=""?$tic[1]:0); }
    Довольно компактный парсер тИЦа. Может дольше обновляется, чем на кнопке/в каталоге. Писал не я (некоторые моменты я тоже не вкурил - работает, и ладно).

    Яндекс: число страниц в индексе
    PHP:
    <?
    function 
    ya_stat($url){
    $str=file_get_contents("http://yandex.ru/yandsearch?numdoc=10&serverurl={$url}&lr=1");

    $str=str_replace("&nbsp;млн","000000",$str);
    $str=str_replace("&nbsp;тыс.","000",$str);

    preg_match('~<title>[^\d]*(\d+)[^\d]*</title>~',$str,$find);
    $res=$find[1];
    if(
    preg_match("/<title>(.*)ничего не найдено(.*)<\/title>/s"$str)) {$res=0;}

    return 
    $res;
    }

    $site="spryt.ru";
    $ya=ya_stat($site);
    echo 
    "$site = $ya";
    ?>
    Обратите внимание на ограничения яндекса - он запросто может ограничить IP и выдавать ему капчу (если парсите сразу пачку сайтов). Между запросами лучше установить случайный интервал, вроде sleep(5,rand(1,5));

    LiveInternet статистика
    PHP:
    function listat($url){

    $content file_get_contents("http://counter.yadro.ru/values?site=".$url); 

    preg_match_all("|LI_([^ ]+) = (\d*);|",$content,$ok);

    for(
    $i=0$i<count($ok[1]); $i++) $info[$ok[1][$i]]=$ok[2][$i];

    return 
    $info;}



    //Использование

    $ff=listat($url);

    $w_vis=floor($ff[week_vis]/7);

    $w_hit=floor($ff[week_hit]/7);//Средняя посещаемость за последнюю неделю

    $li_vis=$ff[day_vis];

    $li_hit=$ff[day_hit];//И дневная посещаемость

    echo "Week $w_vis / $w_hit, today $li_vis / $li_hit";
    Информация для счетчика LiveInternet. Показывается для всех сайтов, которые не закрыли отображение инфы на счетчике (даже если сама статистика закрыта). Удобно как анализировать чужие сайты, так и просматривать суммарную посещаемость своих.

    Google Pagerank


    PHP:

    <?
    $googlehost='toolbarqueries.google.com'; 
    $googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5'; 

    function StrToNum($Str, $Check, $Magic) { 
        $Int32Unit = 4294967296; 

        $length = strlen($Str); 
        for ($i = 0; $i < $length; $i++) { 
            $Check *= $Magic;      
            if ($Check >= $Int32Unit) { 
                $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit)); 
                $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check; 
            } 
            $Check += ord($Str{$i});  
        } 
        return $Check; 


    function HashURL($String) { 
        $Check1 = StrToNum($String, 0x1505, 0x21); 
        $Check2 = StrToNum($String, 0, 0x1003F); 

        $Check1 >>= 2;      
        $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F); 
        $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF); 
        $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);     

        $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F ); 
        $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 ); 

        return ($T1 | $T2); 


    function CheckHash($Hashnum) { 
        $CheckByte = 0; 
        $Flag = 0; 

        $HashStr = sprintf('%u', $Hashnum) ; 
        $length = strlen($HashStr); 

        for ($i = $length - 1;  $i >= 0;  $i --) { 
            $Re = $HashStr{$i}; 
            if (1 === ($Flag % 2)) {               
                $Re += $Re;      
                $Re = (int)($Re / 10) + ($Re % 10); 
            } 
            $CheckByte += $Re; 
            $Flag ++;     
        } 

        $CheckByte %= 10; 
        if (0 !== $CheckByte) { 
            $CheckByte = 10 - $CheckByte; 
            if (1 === ($Flag % 2) ) { 
                if (1 === ($CheckByte % 2)) { 
                    $CheckByte += 9; 
                } 
                $CheckByte >>= 1; 
            } 
        } 

        return '7'.$CheckByte.$HashStr; 


    function getch($url) { return CheckHash(HashURL($url)); } 

    function get_pr($url) { 
        global $googlehost,$googleua; 
        $ch = getch($url); 
        $fp = fsockopen($googlehost, 80, $errno, $errstr, 30); 
        if ($fp) { 
           $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n"; 
           $out .= "User-Agent: $googleua\r\n"; 
           $out .= "Host: $googlehost\r\n"; 
           $out .= "Connection: Close\r\n\r\n"; 

           fwrite($fp, $out); 
           while (!feof($fp)) { 
                $data = fgets($fp, 128); 
                $pos = strpos($data, "Rank_"); 
                if($pos === false){} else{ 
                    $pr=substr($data, $pos + 9); 
                    $pr=trim($pr); 
                    $pr=str_replace("\n",'',$pr); 
                    return $pr; 
                } 
           } 
           fclose($fp); 
        } 


    $site="spryt.ru";
    $pr=get_pr($site);
    echo "$site = $pr";
    ?>
     
    2 people like this.
Loading...