2013-08-05 61 views
0

我有PHP脚本,它使用ssh实用程序连接到远程Ubuntu机器以执行一些命令。该脚本如下所示。phpseclib:如何给IF条件检查连接是否已建立

<?php 
    include('Net/SSH2.php'); 

    define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX); 

    $ssh = new Net_SSH2('10.3.2.0'); 
    if (!$ssh->login('makesubdomain','abcdabcd')) { 
     exit('Login Failed'); 
    } 
    echo $ssh->exec('/usr/local/listdomain.backup/test/makedir.sh'); 
?> 

这里我的问题是,我怎么能给一个if条件检查连接是否失败与否。我试图修改上面的代码,但是我知道这是非常错误的。

<?php 
    include('Net/SSH2.php'); 

    define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX); 

    if(!$ssh = new Net_SSH2('10.3.2.0')) // Here how can I give condtion 
    { 
     echo "Connection failed"; 
    }else{ 
     if (!$ssh->login('abcd','abcdabcd')) { 
      exit('Login Failed'); 
     } 
     echo $ssh->exec('./test.sh'); 
    } 
?> 

请帮助我,因为我很初学php。由于

回答

1

你要找的答案是:

它已经在这个例子中都在那里,你已经给了,无需修改代码。

$ssh->login()完全符合您的要求:它会尝试连接并登录到您提供给它的服务器,如果失败,它将返回false。

+0

要添加到什么cuewizchris说...如果构造函数无法连接到IP地址然后登录()将不会实际尝试提交用户名/密码。它只会返回false,就是这样。 – neubert