Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Class msnlistgrab ed aruba

    Salve a tutti, sul mio portale sto implementando una funzione mediante la quale gli utenti possono segnalare ai loro contatti msn il proprio codice referente.
    In rete ho trovato una classe, che ho leggermente modificato.
    Il problema e che tale funzione runna perfettamente da molti server mentre da aruba con hosting linux mi dice " impossibile connettersi al servizio msn"..
    Non so dipederaa sicuramente dalla configurazione dei server aruba...
    qualcuno puo darmi qualke dritta per risolvere il problema?
    Riporto sotto i codici:


    Codice PHP:
    // PER MSN

    function msn_login() {

        
    themeheader('Login:');

          
    menu_user();



        echo 
    "<center>    


                <form method=\"POST\" action=\"account.php\">

                    MSN Username:
    <input type=\"text\" name=\"username\">


                    MSN Password:
    <input type=\"password\" name=\"password\">


                     <input type=\"hidden\" value=\"msn_email\" name=\"go\">

                    <input type=\"submit\" name=\"invia\" value=\"Invia\"> 


                </form>

        </center>"
    ;

        

        
    themefooter();

    }



    function 
    msn_email() {

    global 
    $nome_user$id_user$url_sito$admin_email$titolo_sito

        

        if (isset(
    $_POST['invia'])) {



            
    $username=$_POST['username'];

            
    $password=$_POST['password'];



            if (isset(
    $username) AND isset($password)) {

            

                if (!
    eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$username )) {

                     
    msg_err(33);

                }

            

                include(
    'msn_contact_grab.class.php');

                
    $msn2 = new msn;

                
    $returned_emails $msn2->qGrab($username$password);



                    foreach(
    $returned_emails as $row) {



                            
    $email_contatto=$row[0];

                            
    //$headers = "From: $username \r\n";

                            //$headers.= "Content-Type: text/html; charset=ISO-8859-1 "; 

                            //$headers .= "MIME-Version: 1.0 "; 

                            

                            // manda email

                            
    $url=$url_sito."vota.php?ref=$nome_user"// crea url click o refernete

                            

                            
    $oggetto="Email inviata da $nome_user";

                            
    $messaggio="Ciao, $nome_user ti invita a registrarti su  $url ";

                            

                            
    $headers .= "From: $titolo_sito <".$username."> \r\n"

                            
    $headers .= "Reply-To: $titolo_sito <".$username."> \r\n"

                            
    $headers .= "Return-Path: $titolo_sito <".$username."> \r\n";    

                            
    $headers .= "Message-ID: <".$now." [email]TheSystem@hotmail.com[/email]> \r\n"

                            
    $headers .= "X-Mailer: PHP v".phpversion() ."\r\n";

                            
    $mime_boundary=md5(time()); 

                            
    $headers .= 'MIME-Version: 1.0 \r\n'

                            
    $headers .= "Content-Type: text/html; boundary=\"".$mime_boundary."\" \r\n"



                    

                            
    mail($email_contatto$oggetto$messaggio$headers);



                    }

                    

                    if (
    $returned_emails) {

                        
    themeheader('Login:');

                          
    menu_user();

                            echo 
    "Login effettuato.";

                        
    themefooter();

                    } else { 

                        
    msg_err(61);

                    }

                    

            } else {

                
    msg_err(60);

            }

            

        } else {

            
    msn_login();

        }

    }







    if (isset(
    $_GET['go'])) { 

        
    $go $_GET['go']; 

    } elseif (isset(
    $_POST['go'])) {

        
    $go $_POST['go']; 

    } else {

        
    $go="usermain";

    }





    switch(
    $go) {



        default:

            
    login();

        break;

    case 
    "msn_login":

          
    msn_login();

        break;

        

        case 
    "msn_email":

          
    msn_email();

        break; 







    E questa e la classe msn che utilizzo










    Codice PHP:

    <?php


    class msn
    {

        var 
    $server    =    'messenger.hotmail.com';
        var 
    $port    =    1863;

        var 
    $nexus    =    'https://nexus.passport.com/rdr/pprdr.asp';
        var 
    $ssh_login    =    'login.live.com/login2.srf';

        var 
    $debug    =    0;

        var 
    $curl_bin    =    0;
        var 
    $curl    =    '/usr/local/bin/curl';    // linux
        //var $curl    =    'c:\curl.exe';        // windows

        //Used to prevent the script from hanging
        
    var $count 0;
        
        
    //Used to store the email addresses until all have been collected
        
    var $email_input = array();
        var 
    $email_processing = array();
        var 
    $email_output = array();

        
        function 
    connect($passport$password)
        {
            
    $this->trID 1;

        if (!
    $this->fp = @fsockopen($this->server$this->port$errno$errstr2)) {
                
                die(
    "Could not connect to messenger service");
            
            } else {
                  
    stream_set_timeout($this->fp2);
                  
                
    $this->_put("VER $this->trID MSNP9 CVR0\r\n");

                while (! 
    feof($this->fp))
                {
                    
    $data $this->_get();

                    switch (
    $code substr($data03))
                    {
                        default:
                            echo 
    $this->_get_error($code);

                            return 
    false;
                        break;
                        case 
    'VER':
                            
    $this->_put("CVR $this->trID 0x0409 win 4.10 i386 MSNMSGR 7.0.0816 MSMSGS $passport\r\n");
                        break;
                        case 
    'CVR':
                            
    $this->_put("USR $this->trID TWN I $passport\r\n");
                        break;
                        case 
    'XFR':
                            list(, , , 
    $ip)  = explode (' '$data);
                            list(
    $ip$port) = explode (':'$ip);

                            if (
    $this->fp = @fsockopen($ip$port$errno$errstr2))
                            {
                                
    $this->trID 1;

                                
    $this->_put("VER $this->trID MSNP9 CVR0\r\n");
                            }
                            else
                            {
                                if (! empty(
    $this->debug)) echo 'Unable to connect to msn server (transfer)';

                                return 
    false;
                            }
                        break;
                        case 
    'USR':
                            if (isset(
    $this->authed))
                            {
                                return 
    true;
                            }
                            else
                            {
                                
    $this->passport $passport;
                                
    $this->password urlencode($password);

                                list(,,,, 
    $code) = explode(' 'trim($data));

                                if (
    $auth $this->_ssl_auth($code))
                                {
                                    
    $this->_put("USR $this->trID TWN S $auth\r\n");

                                    
    $this->authed 1;
                                }
                                else
                                {
                                    if (! empty(
    $this->debug)) echo 'auth failed';

                                    return 
    false;
                                }
                            }
                        break;
                    }
                }
            }
            
        }

        
    //Collects the raw data containing the email addresses
        
    function rx_data()
        {
            
    $this->_put("SYN $this->trID 0\r\n");
            
            
    //Supplies the second MSG code which stops
            //the script from hanging as it waits for
            //more content
            
    $this->_put("CHG $this->trID NLN\r\n");
            
            
    $stream_info stream_get_meta_data($this->fp);
            
    $email_total 100;
            
    //the count check prevents the script hanging as it waits for more content
            
    while ((! feof($this->fp)) && (! $stream_info['timed_out']) && ($this->count <= 1) && (count($this->email_input) < $email_total))
            {
                
    $data $this->_get();
                
    $stream_info stream_get_meta_data($this->fp);
                
                if (
    $data)
                {
                    
                    switch(
    $code substr($data03))
                    {
                        default:
                            
    // uncommenting this line here would probably give a load of "error code not found" messages.
                            //echo $this->_get_error($code);
                        
    break;
                        case 
    'MSG':
                           
    //This prevents the script hanging as it waits for more content
                           
    $this->count++;
                        break;
                        case 
    'LST':
                           
    //These are the email addresses
                           //They need to be collected in email_input
                           
                           
    $this->email_input[] = $data;
                           if (
    $this->debug) print("<span class='b'>" count($this->email_input) . "</span>");
                           
                        break;
                        case 
    'SYN':
                        
    $syn_explode explode(" "$data);
                        
    $email_total $syn_explode[3];
                        break;
                        case 
    'CHL':
                            
    $bits explode (' 'trim($data));

                            
    $return md5($bits[2].'Q1P7W2E4J9R8U3S5');
                            
    $this->_put("QRY $this->trID [email]msmsgs@msnmsgr.com[/email] 32\r\n$return");
                        break;
                        
                    }
                }
            }
            
        }
        
        
    //This function extracts the emails and screen names from the raw data 
        //collected by rx_data
        
    function process_emails () {
          
          
    //Neaten up the emails
          
          //$regex = "|^LST\s(\S+?)\s(\S+?)\s\d+?\s\d+?$|";
          
    foreach($this->email_input as $email_entry) {
            
            
    //Seperate out the email from the name and other data
            
    $this->email_processing[] = explode(" "$email_entry);
                            
          }
          
          
    //Get rid of the unnecessary data and clean up the name
          
    foreach($this->email_processing as $email_entry){
            
            
    $this->email_output[] = array(=> $email_entry['1'],
                                            
    => urldecode($email_entry[2]));
        }
        
        
    //var_dump($this->email_processing);
        //var_dump($this->email_output);
          
          
          
      
    }

        
    //This is a quick way of calling all the seperate functions
        //needed to grab the contact list
        
    function qGrab ($username$password) {
          
          
    //Connect to the MSNM service
          
    $this->connect($username$password);
          
          
    //Get data
          
    $this->rx_data();
          
          
    //Process emails
          
    $this->process_emails();
          
          
    //send the email array
          
    return $this->email_output;
          
          
        }


        
    /*====================================*\
            Various private functions
        \*====================================*/

        
    function _ssl_auth($auth_string)
        {
            if (empty(
    $this->ssh_login))
            {
                if (
    $this->curl_bin)
                {
                    
    exec("$this->curl -m 60 -LkI $this->nexus"$header);
                    
    $header implode($headernull);
                }
                else
                {
                    
    $ch curl_init($this->nexus);

                    
    curl_setopt($chCURLOPT_HEADER1);
                    
    curl_setopt($chCURLOPT_NOBODY1);
                    
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
                    
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
                    
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
                    
    // curl_setopt($ch, CURLOPT_TIMEOUT, 2);

                    
    $header curl_exec($ch);

                    
    curl_close($ch);
                }

                
    preg_match ('/DALogin=(.*?),/'$header$out);

                if (isset(
    $out[1]))
                {
                    
    $slogin $out[1];
                }
                else
                {
                    return 
    false;
                }
            }
            else
            {
                
    $slogin $this->ssh_login;
            }


            if (
    $this->curl_bin)
            {
                
    $header1 '"Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in='.$this->passport.',pwd='.$this->password.','.$auth_string.'"';

                
    exec("$this->curl -m 60 -LkI -H $header1 https://$slogin"$auth_string);

                
    $header null;

                foreach (
    $auth_string as $key => $value)
                {
                    if (
    strstr($value'Unauthorized'))
                    {
                        echo 
    'Unauthorised';
                        return 
    false;
                    }
                    elseif (
    strstr($value'Authentication-Info'))
                    {
                        
    $header $value;
                    }
                }
            }
            else
            {
                
    $ch curl_init('https://'.$slogin);
                
    curl_setopt($chCURLOPT_HTTPHEADER, array(
                                
    'Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in='.$this->passport.',pwd='.$this->password.','.$auth_string,
                                
    'Host: login.passport.com'
                                
    ));

                
    curl_setopt($chCURLOPT_HEADER1);
                
    curl_setopt($chCURLOPT_NOBODY1);
                
    //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
                
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
                
    // curl_setopt($ch, CURLOPT_TIMEOUT, 2);

                
    $header curl_exec($ch);

                
    curl_close($ch);
            }

            
    preg_match ("/from-PP='(.*?)'/"$header$out);

            return (isset(
    $out[1])) ? $out[1] : false;
        }


        function 
    _get()
        {
            if (
    $data = @fgets($this->fp4096))
            {
                  
              
                if (
    $this->debug) echo "<div class=\"r\">&lt;&lt;&lt; $data</div>\n";

                return 
    $data;
            }
            else
            {
                return 
    false;
            }
        }


        function 
    _put($data)
        {
            
    fwrite($this->fp$data);

            
    $this->trID++;

            if (
    $this->debug) echo "<div class=\"g\">&gt;&gt;&gt; $data</div>";
        }


        function 
    _get_error($code)
        {
            switch (
    $code)
            {
                case 
    201:
                    return 
    'Error: 201 Invalid parameter';
                break;
                case 
    217:
                    return 
    'Error: 217 Principal not on-line';
                break;
                case 
    500:
                    return 
    'Error: 500 Internal server error';
                break;
                case 
    540:
                    return 
    'Error: 540 Challenge response failed';
                break;
                case 
    601:
                    return 
    'Error: 601 Server is unavailable';
                break;
                case 
    710:
                    return 
    'Error: 710 Bad CVR parameters sent';
                break;
                case 
    713:
                    return 
    'Error: 713 Calling too rapidly';
                break;
                case 
    731:
                    return 
    'Error: 731 Not expected';
                break;
                case 
    800:
                    return 
    'Error: 800 Changing too rapidly';
                break;
                case 
    910:
                case 
    921:
                    return 
    'Error: 910/921 Server too busy';
                break;
                case 
    911:
                    return 
    'Error: 911 Authentication failed';
                break;
                case 
    923:
                    return 
    'Error: 923 Kids Passport without parental consent';
                break;
                case 
    928:
                    return 
    'Error: 928 Bad ticket';
                break;
                default:
                    return 
    'Error code '.$code.' not found';
                break;
            }
        }
        

    }


    ?>
    l'errore credo stia qua

    if (!$this->fp = @fsockopen($this->server, $this->port, $errno, $errstr, 2)) {

    die("Could not connect to messenger service");

    Grazie mille
    http://www.eurohackers.it

  2. #2
    E' molto probabile che la funzione fsockopen() sia disabilitata/bloccata.

  3. #3
    mmm si lo credo anche io... nn esistono varianti a questa funzione, oppure qualsiasi genere d modifica ke m faccia runnare il codice?
    http://www.eurohackers.it

  4. #4
    Se il server non permette connessioni socket verso l'esterno non credo vi siano possibilita' di risolvere il problema, almeno lato server. L'alternativa sarebbe implmentare un qualche tipo di sistema lato client.

  5. #5
    si infatti e quello che sto cercando d fare... consigli?
    http://www.eurohackers.it

  6. #6
    mmm ho trovato una soluzione arcana...
    metto il file su un'altro server e lo richiamo in un iframe.... XD una soluzione ovvia a cui nn avevo pensato XD
    http://www.eurohackers.it

  7. #7
    il problema è che, a quanto immagino, aruba non ha il CURL installato...
    anche io devo metterlo su un server aruba...

  8. #8
    Insomma non è ancora stata trovata una soluzione a questo problema.
    Cavolo, dovremmo cercare di risolverla perchè servirebbe a molti che hanno hosting su server condivisi.
    Non è possibile utilizzare proprio qualche funzione alternativa alla fsockopen()?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.