баны IP с которых лили доры на фрихосты

Тема в разделе "Вопросы новичков", создана пользователем maneak, 23 май 2008.

Статус темы:
Закрыта.
  1. maneak

    maneak Читатель

    Заблокирован
    Регистр.:
    29 авг 2007
    Сообщения:
    279
    Симпатии:
    43
    Никогда не генерил огромные партии доров, посему вопрос:
    Существует ли какое-нибудь ограничение?
    Перефразирую чтобы было понятней, есть ли предел до которого IP не банят а доры не сносят?
    Ну например 10 доров пофик, а вот за 100 айпибан.

    Разумеется вопрос очень утрирован т.к. фрихостов немерянно и 0дмины у всех разные, но всётаки было бы интересно услышать мнение, особенно тех кто загубил ипы.
     
  2. farm

    farm

    Регистр.:
    8 июн 2006
    Сообщения:
    537
    Симпатии:
    106
    На nm.ru когда-то забанили IP моего VPS. Заливка шла без остановки, круглые сутки.
     
  3. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    на nxt.ru залил около 70 за пару часов - доры снесли, айпи в бан
     
  4. maneak

    maneak Читатель

    Заблокирован
    Регистр.:
    29 авг 2007
    Сообщения:
    279
    Симпатии:
    43
    А в бане в итоге только ты =)

    Ну в ситуации с нм получается что докупленные IPшники всётаки окупятся, это гуд!

    жаль что нельзя через проксики лить на фтп..
     
  5. Alekss

    Alekss Создатель

    Регистр.:
    5 май 2008
    Сообщения:
    11
    Симпатии:
    1
    А никто из гуру не может подсказать решение на php для заливки файлов через прокси? Пытался решить этот вопрос с помощью поиска, но ничего подходящего не нашел.
     
  6. maneak

    maneak Читатель

    Заблокирован
    Регистр.:
    29 авг 2007
    Сообщения:
    279
    Симпатии:
    43
    через socks5 вроде как можно, но вот как.. кидал кличь среди знакомых фрилансеров, но чтото глухо..

    Так же часто слышу что посредствам курла можно лить по фтп через прокси, но тут опять же одни вопросы :bc:
     
  7. Legh

    Legh Создатель

    Регистр.:
    25 май 2008
    Сообщения:
    21
    Симпатии:
    7
    как вариант - если на приемной стороне можно выполнять php - поднять небольшой скриптик, который принимает обычную форму - в ней три поля - пароль (чтоб все подряд не лили), путь, куда класть файл, и сам файл, пущеный как application/octet-stream. т.к все это работает по http - можно использовать любой Anonymous HTTP/
     
  8. Andipas

    Andipas Постоялец

    Регистр.:
    5 дек 2007
    Сообщения:
    130
    Симпатии:
    92
    Проблема в том что фри хосты не дружат с php, да и способ тоже палевный это.
     
  9. SolutionFix

    SolutionFix 17 лет програмлю ;)

    Регистр.:
    20 ноя 2006
    Сообщения:
    272
    Симпатии:
    318
    Через курл ОЧЕНЬ мутно, он не дружит с socks+ftp - это раз, а для http-прокси + ftp надо такие которые поддерживают CONNECT - что рекость...

    Эх, ладно, держите :)
    Написано с нуля на голых сокетах, фактически реализация ftp протокола


    PHP:
    <?php
    // ********************************************************************
    // Class For FTP routines, can work with Socks5 proxy
    // Programmed by SolutionFix, v.1.09 03/12/2007
    // ********************************************************************
        
    class ftpcom
        
    {
            public 
    $Host;
            public 
    $Port;
            public 
    $User;
            public 
    $Pass;
            public 
    $Dir;
            
            public 
    $Error;
            
            public 
    $Proxy;
            public 
    $ConnectTimeOut 18;
            public 
    $WorkTimeOut 25;
            public 
    $MaxData 512000;
            
            public function 
    connect($Host ''$Port ''$TimeOut '')
            {
                if(
    $Host$this->Host $Host;
                if(
    $Port$this->Port $Port;
                if(
    $TimeOut$this->ConnectTimeOut $TimeOut;
                if(
    $this->Proxy$this->CmdSocket $this->fs5sockopen($this->Host$this->Port$this->Proxy$tmp$this->Error$this->ConnectTimeOut);
                else 
    $this->CmdSocket fsockopen($this->Host$this->Port$tmp$this->Error$this->ConnectTimeOut);
                @
    stream_set_timeout($this->CmdSocket$this->WorkTimeOut);
                if(!
    $this->CmdSocket) return false;
                if(
    $this->doCmd() != '220') return false;
                return 
    true;
            }
            
            public function 
    login($User ''$Pass '')
            {
                if(
    $User$this->User $User;
                if(
    $Pass$this->Pass $Pass;
                if(
    $this->doCmd('USER ' $this->User) != '331') return false;
                if(
    $this->doCmd('PASS ' $this->Pass) != '230') return false;
                return 
    true;
            }
            
            public function 
    close()
            {
                if(
    $this->doCmd('QUIT') != '221') return false;
                return 
    true;
            }
            
            public function 
    pwd()
            {
                if(
    $this->doCmd('PWD') != '257') return false;
                return 
    $this->substr_smart($this->Error'"''"');
            }
            
            public function 
    chdir($Dir '')
            {
                if(
    $Dir$this->Dir $Dir;
                if(
    $this->doCmd('CWD ' $this->Dir) != '250') return false;
                return 
    true;
            }

            public function 
    rawlist($Dir '')
            {
                if(
    $Dir$this->Dir $Dir;
                if(
    $this->doCmd('TYPE A') != '200') return false;
                if(
    $this->doCmd('PASV') != '227') return false;
                if(!
    $this->connect_data()) return false;
                
    $ListCmd $this->doCmd('LIST ' $this->Dir);
                if(
    $ListCmd != '150' and $ListCmd != '125') return false;
                if((
    $Data $this->read()) === false) return false;
                
    //$this->doCmd();
                
    return explode("\n"$Data);
            }
            
            public function 
    get($LocalFile$RemoteFile ''$Mode 'FTP_BINARY')
            {
                if(!
    $RemoteFile$RemoteFile $this->Dir;
                if(
    $Mode == 'FTP_BINARY'$Mode 'TYPE I'; else $Mode 'TYPE A';
                if(
    $this->doCmd($Mode) != '200') return false;
                if(
    $this->doCmd('PASV') != '227') return false;
                if(!
    $this->connect_data()) return false;
                if(
    $this->doCmd('RETR ' $RemoteFile) != '150') return false;
                if((
    $Data $this->read()) === false) return false;
                
    //$this->doCmd();
                
    if(!$f fopen($LocalFile"w+")) {$this->Error 'Cant save file'; return false;}
                
    fwrite($f$Data);
                
    fclose($f);
                return 
    true;
            }
            
            public function 
    put($LocalFile$RemoteFile ''$Mode 'FTP_BINARY')
            {
                if(!
    $RemoteFile$RemoteFile $this->Dir;
                if((
    $Data file_get_contents($LocalFile)) === false) {$this->Error 'Cant open file'; return false;}
                if(
    $Mode == 'FTP_BINARY'$Mode 'TYPE I'; else $Mode 'TYPE A';
                if(
    $this->doCmd($Mode) != '200') return false;
                if(
    $this->doCmd('PASV') != '227') return false;
                if(!
    $this->connect_data()) return false;
                if(
    $this->doCmd('STOR ' $RemoteFile) != '150') return false;
                if(!
    $this->write($Data)) return false;
                
    $this->doCmd();
                return 
    true;
            }

    // ********************************************************************************************************
    // ** DEVELOPMENT SECTION

            
    private $DataHost;
            private 
    $DataPort;
            private 
    $CmdSocket;
            private 
    $DataSocket;
            
            function 
    __construct($FtpURI ''$Proxy '')
            {
                if(
    $FtpURI$this->Error $this->DispatchAddr($FtpURI);
                
    $this->Proxy $Proxy;
            }
            
            function 
    __destruct()
            {
                
    $this->close();
            }
            
            private function 
    DispatchAddr($FtpURI)
            {
                if(
    substr($FtpURI06) != 'ftp://'$FtpURI 'ftp://' $FtpURI;
                if(!
    $URI parse_url($FtpURI)) return 'Bad URI Format';
                if(!
    $this->Host gethostbyname($URI['host'])) return 'Cant locate host';
                if(!
    $this->Port $URI['port']) $this->Port 21;
                if(!
    $this->User $URI['user']) $this->User 'anonymous';
                if(!
    $this->Pass $URI['pass']) $this->Pass 'someone@email';
                if(!
    $this->Dir $URI['path']) $this->Dir '/';
                return 
    'SUCCESS';
            }
            
            private function 
    doCmd($Cmd '')
            {
                if(
    $Cmd) if(!@fputs($this->CmdSocket$Cmd "\r\n")) {$this->Error 'Connect lost'; return false;}
                if(
    $this->Proxysleep(3); else sleep(1);
                if(!
    $this->Error trim(@fread($this->CmdSocket4096))) {$this->Error 'No answer'; return false;}
                return 
    substr($this->Error,0,3);
            }
            
            private function 
    fs5sockopen($Host$Port$Proxy, &$Errnumb, &$Errstr$TimeOut)
            {
                list(
    $SocksHost$SocksPort) = explode(":"$this->Proxy);
                if(!
    $Socket = @fsockopen($SocksHost$SocksPort$Errnumb$Errstr$TimeOut)) return false;
                
    $Errstr 'Bad proxy';
                if(!
    fwrite($Socket"\x5\x1\x0")) return false;
                if(!
    $Ans fread($Socket2)) return false;
                if(
    $Ans[1] != "\x0") return false;
                list(
    $A1$A2$A3$A4) = explode("."$this->Host);
                
    $P2 $Port - (($P1 $Port >> 8) << 8);
                
    $Cmd chr($A1) . chr($A2) . chr($A3) . chr($A4) . chr($P1) . chr($P2);
                if(!
    fwrite($Socket"\x05\x01\x00\x01".$Cmd)) return false;
                if(!
    $Ans fread($Socket10)) return false;
                if(
    $Ans[1]!="\x0") return false;
                
    $Errstr 'SUCCESS';
                return 
    $Socket;
            }
            
            private function 
    connect_data()
            {
                list(
    $tmp$DestAddr) = explode("("$this->Error);
                
    $DestAddr substr($DestAddr,0strpos($DestAddr')'));
                list(
    $A1$A2$A3$A4$P1$P2) = explode(","$DestAddr);
                
    $this->DataHost $A1 '.' $A2 '.' $A3 '.' $A4;
                
    $this->DataPort $P1 256 $P2;
                if(
    $this->Proxy$this->DataSocket $this->fs5sockopen($this->DataHost$this->DataPort$this->Proxy$tmp$this->Error$this->ConnectTimeOut);
                else 
    $this->DataSocket fsockopen($this->DataHost$this->DataPort$tmp$this->Error$this->ConnectTimeOut);
                if(!
    $this->DataSocket) return false;
                return 
    true;
            }
            
            private function 
    read()
            {
                
    $Data '';
                while(!
    feof($this->DataSocket)) 
                {
                    if(!
    $NextLine fgets($this->DataSocket$this->MaxData)) return false;
                    
    $Data .=  $NextLine;
                    if(
    strlen($Data) > $this->MaxData) break;
                }
                
    fclose($this->DataSocket);
                return 
    trim($Data);
            }

            private function 
    write($Data)
            {
                if(
    fputs($this->DataSocket$Data) < strlen($Data)) return false;
                
    fclose($this->DataSocket);
                return 
    true;
            }
        
            private function 
    substr_smart($Source$From$To '"')
            {
                if(
    $From == ''$SeekA 0; else
                if ((
    $SeekA = @strpos($Source$From)) === false) return false;
                else 
    $SeekA += strlen($From);
                if ((
    $SeekB = @strpos($Source$To$SeekA)) === false$SeekB strlen($Source);
                return 
    substr($Source$SeekA$SeekB $SeekA);
            }
        
        }
    ?>
     
    sydoow, an294, regero и 20 другим нравится это.
  10. Retranzie

    Retranzie Постоялец

    Регистр.:
    24 май 2008
    Сообщения:
    83
    Симпатии:
    27
    Таких программ много, через прокси можно запустить практически любую софтину, я использую Freecap.
    Если трудности с поиском прокси можно поднять свою где-нибудь, прокси скриптов множество.
     
Статус темы:
Закрыта.